What everyone else has said - start by cutting the nap (altogether, not waking him up early - that'd put anyone in a foul mood!) - & be prepared for a very grumpy few days, & him falling asleep over tea.
Definitely don't put him to bed two hours before he's actually ready to sleep, then sit with him for two hours; it just makes the whole thing more stressful for everyone, turning it into a much bigger deal than it needs to be. Life's too short.
I would cut the nap & tough out the grumpiness, move tea & bathtime to have it all done by 6pm, & then curl up & read to him for half an hour.
Then I'd dim the lights & just potter around the room whilst he settled, taking the opportunity to put clothes/toys away etc - nipping off down the landing to 'just get something' every so often, if you can get away with it. The idea is to create the sense that whilst you are a reassuring presence nearby, you are not sitting anxiously scrutinising him, worrying about whether he's dropping off or not - if he really wants to lie awake, meh, that's fine.
In fact, I'd definitely have him & dd moving into their room together & both of them on the same bedtime routine - I ended up with three under 4s sharing a small room before we moved, & it always amazed me how they blocked out each other's noise - & found each other's snuffling quite soothing, apparently!
The most important thing is definitely not to let it get to you. He's fine - he's getting plenty of sleep on his current routine; it's not a massive problem that Must Be Fixed. If the least stressful way for you is, actually, to let him go to bed at 10pm when he's tired, until you're back at work & then see if he drops the nap naturally in a month or two, then just do that...