The friction here is probably from someone used to working in one of the job fields like this coming into an office environment where your hours aren't as relevant as the quality and volume of your work.
I will say though, I was a lead developer at my last job and I had some issues with an employee (with two young kids) not putting in forty hours a week, and he wasn't otherwise making up for it either. He'd be the last one in and the first one out, and it was problematic because he was supposedly the senior developer on the team but he was not meriting his higher salary. In the end I suppose you could say the real problem was with his output, not his hours, but they did seem like interrelated issues.
You can have supply teachers on call. Or you can pay them a bit extra to arrive early and mark work in that time. (e.g. make the actual working day 5-6 hours; other hours used for marking, planning, etc). There are other solutions.
One that sticks out in my mind is that when I used to work retail, our hourly pay stopped when the store closed. Obviously you don't and can't leave then. The last customer is slow, you might need to lock up, etc.
In most cases, all you need is for management to actually think about these issues and to not allow the quest for margins to result in abusive practices.
When you're a contractor then yes, you are The One, you have chosen and need to be reliable. When you are part of a massive organization with profit in the billions (e.g. a supermarket), it really is a deliberate choice they are making which results in stress being loaded on you.
Right now you're making the same kind of judgements of the boss as he is making of you.