There is a very fine line between napping and staying up late because of it or not napping-being fussy and going to bed on time.
We went through it twice-but here is what I came up with...
My children are 7 and 4 now. If they're super active during the day-like swimming or playdates and the like then I will allow a nap but I won't let them nap for as long as they want. I let them start out in a dark room but an hour later I open curtains or blinds to let in the brightest natural light I can and they typically wake up on their own soon after without being grumpy at me for shaking them awake.
On a boring day with no major activities I don't allow a nap and will instead give them some sort of busy work to keep them going-play-doh, painting, benda-roos-something a little out of the norm. Bedtime around here is 8PM sharp! Latest ours go to bed is 9pm and that's for special circumstances.
Mine wake up with the sun and always have. My youngest is something of a night owl like me but she's learning to stay in bed even if she can't sleep-just quiet rest is still beneficial if only to keep mommy and daddy's sanity intact!
Hang in there- you'll find the right balance for your son eventually. It takes time to figure out what works for ya'll. :)