Well... if it's not external (needing food, for example), have you examine internal?
- Allergy season started a few months ago. This kicks off sinus infections and ear infections in many kids with allergies. They're fine in the daytime, when they're vertical and moving but at night, their sinuses fill with fluid and become painful and they need to be vertical again. Allergy caused sinus infections will last until about 1 month after allergy season ends. So if allergies are the cause, you're looking at a few more months of no-sleep unless you get him on either allergy meds or Rx/no-Rx-but-behind the counter decongestants (like pseudoephedrine) + tylenol.
- Teething. Again, during the day they're fine, but at night when there are no distractions, the pain hits. Again, the solution is tylenol... but it's tylenol alone.
- Acid reflux/ heartburn. Something that happens ESP when you lay down.
- Growing Pains. Oweeeee. My son had these. So for several years it was a combo of massage, bananas (for the potassium, which helps easy muscle cramps), and tylenol or ibuprofen for several days in a row several times a month.
- Alimentary problems. Happens sometimes with solids. Their poop schedule has them gassy/in pain during certain parts of the schedule. This can be at any time, day or night. Elimination diet + tums.
Probably the SIMPLEST way to figure out if it's something physical is to give him a dose of tylenol with bedtime and see if you get 4-6 hours of sleep in a row. If SO... then you've got something physical going on. If not, it MAY be allergies or a sinus infection (because tylenol doesn't relieve the pressure). So that's worth checking out.
But seriously. Try dosing him, and seeing if it's pain that keeps waking him up.