When my kids did this it was a sure sign they were ready to give up the nap. Or at least shorten it. Try waking him up after an hour. And then get out and do something in the afternoon to burn off some energy... even though it's cold there are indoor places to go play like the children's museum, mall, ben & ari's, play-a-lot, recreation unlimited, chuck e cheese, etc. Or just run around inside your house... we build obstical courses in our basement. We also have a small trampoline with handle (from lillianvernon.com) and my 2 year old spends literally hours each day jumping on it.
If waking early from a nap doesn't work, then it may just be time to give up on the nap. If you do this, you'll have a cranky kid by dinnertime for a week or so until they adjust. You might also have to move bedtime 30-60 minutes earlier. My 2.5 year old is currently going through this... she'll nap once every 2-3 days. On days she naps, she won't fall asleep until 9pm (happily playing in her crib for an hour). On days she doens't nap, she's sound asleep as soon as her head hits the pillow at 7:30. We moved her bedtime from 8pm to 7:30pm. My 5 year old did the same thing when he was 2.5 and was done with naps completely a few months before he turned 3. Some kids just give up naps earlier than others.
Or just keep doing what you're doing. There's nothing wrong with your child spending an hour 'reading', singing, playing quietly, etc in his bed in the evening. I used to do that when I was a kid. My kids do it, too. My 5 year old stays up an extra 30 minutes after we leave his room so he can read and play quietly in bed then turns off the light and goes to sleep. I think it's the habit he started when he was 2. :-)