If he's starting the day at 7am, I'd start aiming to be in bed at 7pm. I know it sounds a bit counter-productive - that he'll just wake more, but usually babies do better with earlier bedtimes, and 12 hours is the general "goal" for night sleep. If he eats at 4am, and you want to keep your 8pm bedtime, then maybe you should let him sleep past 7am until 8am if he will. He may need more nighttime sleep and that's why he's tired again so soon in the morning?
At his age, 1-2 NWs to eat is not uncommon. That's great that you can get him back to sleep at 2am, but if he's up again at 4 or 5am, personally I'd just nurse him and put him back to bed. Eventually he'll outgrow the need for this feeding.
It's not uncommon either to adjust your EASY day by day -- there can be alot of variables at play, so that's why it's more of a routine than a schedule.
Jana