B.G.
He might be overtired. My kids are 3 and 6, and my 6 year old used to do things like this when he was overtired or when let him stay up too late. He's pretty good about sleeping in now. My 3 year old, on the other hand, get's up at the same time every morning no matter what time he goes to bed! He doesn't usually need a nap, but if he is up late I usually try to get him down for a nap the next day.
I understand the idea that it's ok for him to stay up until 9 pm because it's summer, but I'm thinking you might want to consider an earlier bedtime. If he gets to bed by 8 (or 8:30, you might need to play around a bit) he might get a better sleep.
Good luck!