I wouldn't underestimate the boost in happiness that walking well will bring when it comes. There were two milestones for DS that dramatically improved his moment to moment life and one was talking well enough to communicate thoughts and needs (which it sounds as if yours has mastered) and walking (which made DS feel much more adult and allowed him faster control of what he was doing at any given moment).

On saying no -- I was always struggling with whether it was up to me to tell DS no, many things he wanted to do were not exactly unsafe, just inconvenient for the parent at that moment. How is it my right to judge the value of his activity, is it not as valuable to him as mine is to me. I don't have much advice for that philosophical side of things, parental priorities shift moment to moment in ways inherently unfair to toddlers.

However, some of our actual practical verbal interactions improved for me markedly just by changing my wording. Rather than "no", when possible I began to say, "I'm sorry, that is not allowed" as if he were crossing a cultural norm. A loud screech for example, "I'm sorry, that voice is not allowed indoors" rather than "No, you can’t screech indoors". That phrase “is not allowed” helped me be more dispassionate, helped me feel more comfortable saying no. "No" feels mean and if I say no a number of times in a row I feel internally stressed even if he isn't any more frustrated than otherwise. "Not allowed", on the other hand, is not at all my fault, in fact it's not even up to me, screeching indoors is just not allowed in our culture and I am just the messenger. The polite, “I’m sorry” indicates that I do feel sympathy for his situation, wishing to screech when it happens to not be allowed must be frustrating. Fine distinction and most people probably wouldn't need it, but really seemed to work better for me than a simple no.

With DS redirection did not work very well. Maybe because by a month or so of age he rarely would forget anything. I really think the poor memory of many babies may be a sort of protective amnesia. If the last thing he wanted at night was to be held outside the window so he could get a good look at the drain pipes, then he woke up thinking the same thing and it was the first thing he wanted to do. For many toddlers if one can get them out of sight of the desired thing they move on, for DS sometimes, but often not. (On the plus side now at 5 DS is tenacious and driven about good goals too.)

The internet and parents etc said redirect, redirect, but for DS generally all we could do was be clear and firm so he had less time to get his hopes up, and then offer a shoulder for the inevitable feeling of unhappiness. Because it was often me in the way between DS and his goal he seemed to feel like I was letting him down. Not angry at me so much as a sad feeling of abandonment by me in his moment of need (for example I would have been the entity that held him outside the window so it’s my fault he can’t see the drain pipes). Therefore I was the last person he’d want comfort from and he was left uncomforted and felt totally alone. I think he and I are still recovering our relationship from all those unintended toddler wounds.

Explaining that it was unsafe to hold him out the window only helped so much. I never found a solution to the basic problem of him remembering past hurts and feeling let down by me at the moment when he needed my comfort, it was not the easiest time, but it has largely passed.

Now at 5 our relationship is much improved as most of his frustrations are external to home, teachers’ expectations, things kids said that hurt, etc. He’s also now really aware of his own emotions towards me being black and white and right in the moment can feel his emotion but see that he’ll feel differently later.