I, for one, am going to disagree with the predominant opinion that this was a racing accident and as such should not have been penalized.
My first point: Vettel made a mistake under pressure. Let's not forget that if he did not make a mistake, we would not be here talking about this controversy. But, like many times before, Vettel has proven to be a very poor driver under pressure. Just this year he made quite a few errors like this one, whether he was being chased by Mercedes or his own teammate.
2nd point: The rules are the rules. Here is what the rule states in this matter: "Should a car leave the track, the driver may re-join, however, this may only be done when it is safe to do so and without gaining any lasting advantage." When I read this to me it seems like penalty is justified. You're off the track slow down and gain control of the car then return. Instead he tried to control the car while at the same time trying to keep his position which was not doable in safe way because Hamilton was too close. If he completely lifted the foot of the gas paddle that car would've stabilized and rolled onto the track eventually but at the cost of losing the position. Instead, Vettel opted to fight to keep the position therefore - penalty. I don't think it can be much clearer that this. Again validity of the rules and what it does to the sport we love is not for debate here, that's another thread.
3rd point: Why would the stewards deliberately ruin the race? What is their incentive to do that? To suggest that they are in cahoots with the Mercedes team is ridiculous and childish. And if we really go down this path then we have to discuss the Formula 1's eternal beloved child - Ferrari team which is known for it's privileged status from the earliest days back in the 50s. For a team that has such a huge sway over every decision in Formula 1 from funding to the rules it is pathetic to think that there could be a conspiracy that is beyond the Ferrari's grasp.
4th point: Blame Ferrari incompetence for the boring season. Indeed, for as much as Mercedes had done good this year, Ferrari has done horribly wrong. From the problems with a car in one race where they had assured win with LeClerc, to horrible strategy decisions that cost them precious seconds. Hell, they made one in Canada too. LeClerc was in 3rd just a few seconds behind Hamilton. They pitted Vettel first and after first lap on his new tires it was obvious that he was faster on his hard tires than Hamilton on his mediums. Why did they not immediately call in LeClerc? If they did so, LeClerc might've gained precious few seconds needed to overtake Hamilton especially because Mercedes kept Hamilton out for another 3 laps before pitting him. I was screaming at a TV telling them to pit LeClerc right away... but no.
So yeah, it is a boring season for sure, but it's not Mercedes fault that they did everything perfect. Formula 1 was always about power, money, perfection and luck. This is exactly what we got this year. The most powerful team, with a lot of cash, being perfect and lucky at the same time.