I think get rid of the rule about the top 10 having to start on the tyres they qualified on. It’s a silly rule that effectively means it’s better to be 11th than 10th. If teams are leaving a set of primes unused but complaining about a lack of option tyres then take away a set of primes and add a set of options.
As for penalties for not running, on the one hand I think there should be some kind of comeback on teams for deliberately not running, on the other hand teams may well try to fake technical issues to get around it. The best solution is just to provide no incentive not to run.
Of course, with the current knock-out system, there will always be occasions when somebody gets into the top 10 but knows they can’t do better than 10th, so feels there’s no point in running. Not a lot you can do about that.