The best advice I've read about working extra hours is to "Be a volunteer, not a victim" from Lessons Learned in Software Testing.
I thought I was doing that. But apparently working is a lot like eating; you can only prevent a bad outcome if you stop BEFORE you think you should.
I have experience with burnout; ten years ago, oh man...that was quite a project. So many long days and weekends, all for an impossible goal. The lesson learned from it was that no one is going to stop by and pat me on the head and tell me to go home. I have to take charge of my schedule and life.
Therefore even though it was a project of similar importance, I had actually been treating myself pretty kindly, only working when I had nothing better to do. I didn't miss any school events for my kid, and I was generally there for my family when it mattered.
But in reality, I was working instead of exercising. Working instead of *finding* something better to do.
Then when earlier this week, one...two...then three things don't go to plan...I lacked the reserve of patience & understanding to respond proportionately.
So, even more lessons learned. During crunch times, go home or log off after 9 or 10 hours even when I'm enjoying my work. Hit the treadmill even when I'm lost in thought. Don't commit to work I can't do in 40 hours, even though if it doesn't feel like I'll mind. Extra hours can generally be for catching up on surprise work only instead of surprise work *plus* what may be described as "I'm going to be a hero and try to do everything!" work.
I can continue getting plenty of things done while ensuring that I have enough bandwidth to be flexible to changes in plans.