Thank you Crabby - I think I needed the harshness as well as the niceness :)
I'm not sure I handled last night perfectly. I still slept in his room, as I don't actually have a bed in mine (I swapped it for twin beds, when we moved, in the hope that it would become his spare, for sleepovers, but his dad broke it, bouncing on it with both boys :/) I will put the mattress in there today, though, for now.
Anyway, he asked for 'milky' at about 1 and I said "we don't have milk in the night now", which I'd already made clear and gave him water, tucked him back in. He actually accepted that, but when he asked again at 4.30am, I said 10 seconds each side. I thought that giving it on my terms was better than a fight at that time. But then, he didn't want to get back in his own bed, so I left him on my mattress and slept in his bed until 6.30.
I usually have problems getting him up - too tired, legs don't work and so on. He just wants to have milk, doze, milk, doze, and 'kicks off' if I try to get up, or (pathetically, I know) unlatch him and sneak off, like you might with a 6m old (I would insert an embarrassed face, here, if I knew how!)
However, we were up and having breakfast a good hour earlier than usual.
What could I have done better?
He was well rested and happy this morning. I got him a Lego alarm clock, which beeps at 'time to get dressed'. He ran upstairs to switch it off, then suggested doing everything he needed to be upstairs for there and then - face and teeth etc, rather than constantly running away, hiding, wanting to get toys out, like he usually does. I praised his 'good idea' and reiterated that the sooner he was dressed, the more time he would have for Lego before school.
A mum from school, who had noticed I was having problems getting there has offered to knock for us on the way. He knows he needs to be ready on time if he wants to walk with his friend. They ran in to school together this morning.
He has earned 15 minutes on my phone after school - a special, (as in, free!), game I put on it for him.
I cannot believe how well this is going!
Having said that, I still feel a bit as if I'm walking on egg shells around him, and am expecting some resistance at bedtime, when he realises I will be leaving his room when he is asleep. We've tapped 'messages' to each other through the wall to try to show him that I am still only a few feet away from him, but that we just can't see each other.
I wrote and re-wrote my original post so many times over the past year, without posting it. I can't thank everyone enough for all the help I've had with this. :)