Every 3 months is a growth-spurt.... at his age... when my kids are growing, they wake and are literally hungry... HUNGRY. Then drink milk, and go back to bed.
If a child is hungry, they are hungry.
Give him milk.
My son, who is now 4... recently hit a growth spurt... and he'd wake at night, tell me "Mommy, milk..." and I gave him a HUGE glass... he drank it, then goes back to sleep. He always does that... when growing.
A hungry kid, can't sleep.
Also, why do you wake him from his nap? Why not let him get a full nap? He sounds over tired....
Over-tired kids, will often get more "hyper" and seem awake, but are fighting sleep. Over-tired kids actually cannot sleep better, fall asleep worse, and stay asleep worse.
When he wakes at 11:30pm... what do you do? Do you leave the lights off and keep things off???? When he wakes, don't turn on lights etc. don't interact with him, if possible....
Also at this age... they get night-mares. Is he possible waking from a dream or night-mare... and then can't get back to sleep?
What time does he go to bed????
What a conundrum... I don't have any miracle answers for you... BUT you said this happens every 3 months with your son... to me, that indicates him hitting growth-spurts and him being HUNGRY.
In fact you said he is often hungry when he wakes.
So, give him milk.
all the best,
Susan