Please help with wrote:
1) Poor sleep - got ~ 5 hrs for the previous two nights
2) Poor (?) taper? - didn't run much at all except for a 9 mile easy jog two days before
3) Poor nutrition? I doubt this once, because I did take a GU every 5 miles, which worked out before
4) Poor hydration? Prior to the race, I made 3 bathroom stops emptying the bladder, and didn't take any liquids to replenish.
5) Lack of long runs in the training cycle - for the past 3 months, I only did two 18 mile runs ~ MP - not sure if this had anything to do with endurance.
The bottom line is this: Is it possible that I run 2:58, then run a 3:07 just three months after, with a decent training cycle? Is there that much variable in marathon performance?
The main thing was poor training.
You need to have consistent mileage, and a well planned schedule that you complete every week.
You need to have better and more frequent long runs.
Your taper was terrible. Don't taper so much. Make sure you're getting enough rest and sleep. Take naps.
Don't bother with gu. That stuff is nonsense. You don't need to eat sugar in a marathon, and it can cause you to bonk.
Drink plenty of water, especially the day before, and especially the morning of the marathon.
Go to the bathroom a few times before starting. You should be able to break 3 hours easily with better training.