I do not think either driver was 100% innocent on this one. It looks like Max intended to do a Vettel-esque undercut that was more agressive than the lap 68 version (which might have worked, but Charles was wise to it and might have fended it off, just as Max was wise to Charles' tactic from the previous lap). However, Max missed his braking point. This forced him towards the outside, but not as far as Max made it look. I think he could have turned inwards more and still had position to prevent being re-passed, though I can hardly blame Max for not being confident of this.
Charles, who had presumably expected Max to hit his braking mark, was certainly not expecting Max to then widen out his line further than necessary. I'm not even convinced Charles needed to force Max to hit him to get the win in the stewards' room - driving out of the situation and rejoining behind Max would probably have netted Max a "crowding penalty". Unfortunately he decided, instead, to steer into Max, presumably to force Max to resume his proper line without damaging either car (an effective "re-route" would have required much more steering lock, but probably the Ferrari would have come off worse).
I don't think there was any way Charles could have kept Max behind him that corner on his own power - the Red Bull had been threatening to overpower the Ferrari for a couple of laps beforehand and it was even closer this time. I do think he could have won it in the stewards' office later (though that would be a sub-optimal way of taking one's maiden win).
My assumption was that the reasons for the stewarding decision needing 3 hours and 10 minutes were fourfold:
1) rmassart's point that the stewards were feeling under pressure due to the psuedopolitical nature of the situation, the fact they were at Max's team's home track and the part where a wrong move could inadvertently change the course of F1's next major driver rivalry. The explanation given did suggest to me a lot of thought got put into not upsetting people unnecessarily with the justification for the penalty.
3) In theory, if my understanding of the collision is correct, there was an alternative option option to the stewards of giving both drivers a 5-second penalty (Max for crowding and Charles for the "re-route"). This would quite literally have benefitted nobody - but to ensure that everyone understood that boundaries had been breached, a careful explanation to each driver of what needed to be done to prevent further visits to the stewards would have been necessary.
3) Following on from the previous point, Max and Charles both seem like the type to ask a ton of questions about minutae if they think this will help them (either directly, in that day's stewarding decision, or indirectly, in their upcoming duels), and unless the questions were inane or repetitive, the stewards would have probably wanted to give thorough answers to prevent future trouble,
4) According to Max's interview with Channel 4, Max and Charles used some of that time to clear the air between them - apparently they were on good terms with each other by the end of the stewards' meeting. Which is remarkable, given their previous history has been lousy (and when I say lousy... ...Max punched Charles at some point in their karting career. No idea why). As far as I'm concerned, if they've resolved to turn over a new leaf in their rivalry, that was worth waiting 3 hours and 10 minutes for in itself.