Actually, as a former homeschooler, I can tell you that two hours a day is just about right for the formal school curriculum in the primary grades.
One morning's work would usually have us AHEAD of the curriculum goals for that day.
The problem is that public school is designed to teach large groups of children all at once. There's a lot of "wasted" time, not just in moving from class-to-class and getting the kids seated and paying attention, but also in the basics of teaching large numbers all at once.
At any point, while half the class is actively learning, the other half is distracted or just marking time. When you have one student, you can move on the minute they master the topic. But when you have 30, you need to constantly play catch-up, bringing up the slower ones while you keep the faster learners out of your hair with busy work.
I have nothing but the GREATEST admiration for teachers and the job they do. But the fact remains that two hours is probably a reasonable estimate of the amount of actual academic learning that goes on in a typical school day.
On a slightly different topic - I'm personally surprised at any system that would punish a 2nd or 3rd grader for an unexcused absence by dropping their grade from an A to a C. What if the child had missed those same days because they had the flu? Presumably, their overall learning achievements would be the same, and yet because their absence is "excused", their grades won't suffer. That's an awfully steep penalty for attendance!
Grades should reflect actual learning and progress over the course of the year, not whether a child's butt is in a specific seat every day.