Watching the head on view and the overhead view side by side, synchronized and in slow motion at the same time, it's fairly obvious to me what really happened.
1. Cavendish was already on the right and half a bike length behind Sagan who was behind Demare
2. Demare veered to the right up against the barrier and Sagan followed him veering into the right were Cavendish was
3. This part was unseen in the overhead shot as it was obscured by trees: Sagan pushed Cavendish into the barriers causing Cavendish to fall
4. They both come out from under the trees where Sagan's elbow appears to be extended
Conclusion: This was 100% Sagan's fault, deviating from his line into Cavendish's line in an extremely dangerous manner and causing an accident. Was it deliberate? Maybe not, it's plausibly negligence from being unaware of Cavendish's position. The elbow appearing at the perfect timing from the overhead shot right when they reappear from under the trees does make it look worse than it is for Sagan. The fact that 'Cavendish was already going down when the elbow came out' is irrelevant, because the crash was still caused by Sagan.
I think the original punishment was correct, relegation and being put out of contention for the green jersey. I can't help but wonder if the DSQ decision was because he may have been 'warned' already for another incident earlier in the Tour.