I think you're actually making some very fair points there and we're not actually very far apart, if at all. Let me elaborate a bit on my 100% for 40 hours but not more. Also the edit I made.
"does it work, is it readable, can it be modified and maintained without too much frustration"
I think that's a really good base. I suspect there's more behind this that meets the eye. While we can debate what exactly constitutes "readable and maintainable code" just the fact that you mention these things tells me that we could probably have a really nice philosophical discussion about what exactly that means to each of us, learn from each other, maybe make each other learn something new or see something from a different angle. There's a lot of opinion vs. cold hard fact in what is "readable" for example. The kind of "average person I don't want to work with" wouldn't even know where to begin regarding those things. They copy and pasted stackoverflow posts together to try and pretend they "worked" and got "stuck".
You mention between 30 and 50 hours. I don't think this is incompatible w/ what I wrote and how I see things. I just didn't spell them out in more detail (long enough post already but this time I'll try to just write it all out). Let's say your nominal hours are 40. I think it's fine and should be normal to sometimes do 30 hours and sometimes 50 hours. It should just even out. Like you say, sometimes you have an errand to run in the middle of the day but you have kids and can't just do a couple hours longer in the afternoon that day. But you can get up earlier one of the next days and add the two hours of your time that you promised your employer there. Sometimes you'll have hours of nothing but brain farts but other times you'll have a stroke of genius while you're in the shower and you code it up in 10 minutes the next morning. There are your mood and productivity ebbs and flows. I'm not saying you have to deliver that task that nominally takes 8 hours to do in exactly 1 wall clock work day. An 8 hour task is probably going to be spread across 2 actual wall clock work days. Not that anyone could actually make such an accurate task estimate.
And yes, it should be OK to work late sometimes because you just want to finish something off. In fact, I expect this kind of flexibility from my employers. I must be able to start at 6a.m. one day because I couldn't sleep as well as working till 10p.m. another day because the S.O. and kids are gone that evening and I want to do that refactoring I never have time to do otherwise. If my employer forces me into a 9-5 instead (i.e. hours outside of that don't "count") then I will be looking for a different employer. I also expect the employer not to expect me to work 60+ hour weeks. I don't want to have to pretend to work 60+ hours while actually goofing off. So of course those extra hours I did that evening have to even out as well. I'll maybe take the Friday after that off or do a half day or something. The last bit is important I think, because otherwise it leads to peer pressure and the aforementioned overwork culture. I don't want to have lots of people on the team that "have nothing else to do" than to code for the company till 10pm every day. Even if they're all about code and that's the only thing they love doing (been there earlier in my life), do it for a side project, open source work, you name it.
Like I said in the edit, when I say 100% it doesn't mean there's not time to talk at the water cooler or answer a personal message here or there and sitting around discussing soccer results w/ someone after lunch while having a coffee. But it does mean not taking 1 1/2 hour lunches every day of the week and counting them as work time. Or walking around w/ a cup of coffee all day, chatting and distracting everyone else. Someone that feels "caught" and quickly stashes the phone away when you enter the room wasn't just answering the S.O. about who's gonna drive little Joe to soccer practice later. They've been on HN since you left the room 3 hours ago.
I guess you can see how we're not really that far off. Empathy and respect, for sure. But I have to actually be able to respect the other person. Some people I really can't bring myself to respect. I rather wonder how they got where they are and I want to be as far away from them as possible. I want to work with like minded people with similar work ethics. I don't want to work with people that spend 7 hours of their "work" time on HN and then invent reasons for why they got stuck on the task and when you take a look yourself (to help them get unstuck) it takes you all of 5 minutes to do the entire task. OK 5 minutes is a bit exaggerated but I guess you get the point. Unfortunately there have been people that I had to work with (that were at similar "experience levels" with me) that took entire weeks to not finish a task that when I took it over was able to complete within 2 hours while doing it from scratch. I'm really sorry, but I just can't respect someone like that (professionally).