yes, I just can't do evenings at all. I also have a 2yo DD who wakes a lot at night, so between that and early mornings, I am not a social butterfly
If they were all like 4yo DS2 who sleeps 12 hours solid, and likes to lie in bed daydreaming when he wakes up, I would be dancing on tables in nightclubs every night (well, perhaps not).
I have recently read the Millpond Sleep Clinic book, which is quite good, you might want to take a look at that. For early waking they suggest starting with a lamp on a timer (or you could use a groclock) - but crucially, they say to begin by setting the timer for 15 mins BEFORE the child's normal wake-up time.
That means that to begin with the child will always wake up and find the clock/lamp says getting up time. So they get the 'win' - whatever reward system you are using (we use a star chart to earn an outing that the DC really want). Very very gradually, you set the time back, and I think with a child like either of ours, it has to be incredibly gradual - so for quite a while you are just getting them to stay in bed/their room for 5 mins before 'wake up time' for example.
We are now (DS1 is 6.5) at a wake up time of 6.25am - which works for us as DH has to leave for work at 6.45 so we are an early-rising household anyway.
We have even, in the last few months, got to the point where DS1 oversleeps occasionally - once even to 7.15 am! That never happened in the first 6 years of his life!
I make sure that DS1 always has a book he's interested in by his bed - if he finishes one before bedtime, I leave a new one for him to find in the morning. Your DS is younger - but maybe there's some version of this you could do, e.g. rotating toys so he has a changing succession of 'new' toys to play with in the morning - and remove them so they're not around during the day for him to get tired of?
It is definitely hard work, and I have every sympathy for you.