Having said that, I've also been burnt out working for startups. You can do 50-60 hours a week for many months but at some point you need a break. I've done it for 18 months but after that, I was pretty useless for several months.
One way I take a break is to work as a software contractor (which I'm doing now.) This pays well and is almost always a 40-hour per week job. It also tends to be pretty boring but it gives me a chance to recharge.
BTW, to relate this back to the topic, I just turned 50 and hope to continue writing software for at least another 20 years.
I have worked probably the same amount of hours when I was younger but due to other responsibilities that came up after I got married, I had to stick with the 35 - 40 hours work weeks.
I was recently involved with a very small shop (5 people, 3 full time developers) and it really took a toll on me. I got caught up in a project that had no end in sight and really caused me great frustration and a sense of not accomplishing anything which contributed immensely in my decision to walk away.
Right now I'm taking a long break but still update myself with what is going on in tech & programming in particular. I have always been a coder (only job I ever had) and I can't see myself doing anything else.
BTW, I just turned 50 myself. So here's to another 20 years of writing software. Cheers!
"By the eighth hour of the day, people's best work is usually already behind them (typically turned in between hours 2 and 6)."
It sounds like 30 hours might well be optimal, but has simply never been tested.
For example, I don't know any software companies in the world that build software with 3 8-hour shifts of workers.