I stayed at Candy Cane Inn for Super Heroes last year and it worked out for my needs. It was a little bit longer walk than I had wanted but during the day, they have a shuttle that we definitely took advantage of. I was a little bit nervous that I would be the only one walking from there in the morning, but I wasn't. There were others that stayed there and we weren't the only ones who were walking along Harbor and through DTD to get to the corrals. In the future when I need a hotel for race mornings, I think I will find something either right in front of DTD on Harbor (BWPPI, etc.) or something across from PPH (Anabella, etc.)
A lot of the hotels around the DLR area also have buses that run the morning of the race so you could theoretically stay further away, instead of right across the street on Harbor, and not have to worry about getting to the corrals in the morning.
One place that I always recommend is BW Raffles. It is next to the Toy Story lot so you can walk over there and ride the bus to the Esplanade and I am pretty sure the buses will pick up there for the race mornings. It is usually less expensive than the places that are on Harbor across the street and it is clean. I have never felt unsafe there either (I have stayed there at least 5 times now). The only downside is their incredibly tiny parking lot - the good news is, when it is filled up, they have a free valet who will park your car for you. Again, I haven't stayed there for a race weekend but every other time, it has been really great for us.