Heres an idea i’ve had since the German Grand Prix. Feel free to shoot me down in flames if you feel i am wrong.
How about removing the restriction on engines and tyres nd ma te tm fill the cars to maximum with fuel so they don’t have to mess about too much with management during a race.
Then for every second a car is in front of the one behind at the end of a race then give everyone in the top 10 the sme amount of points as the win, for example first place would get 25 points per second and 18 for the second car per second and so on down the grid. This might mean the drivers would push more to get past the cars in front for fear of losing a lot of points.
and so if the teams mess with team orders like Ferrari did in Germany, then the stewards could take all their points away. I would say the teams would not like to lose such a large amount of points, and i would add another incentive not to cheat too by doubling the points they lose.