MotoGP successfully (in my opinion) uses a long lap penalty system where riders that exceed track limits, or commit other types of sporting violations, have to take a dedicated longer, slower turn on the track. This increases the lap time for that 1 lap, effectively penalising the rider during the race. World Superbikes will also introduce long lap penalties for 2021 (https://www.motorcyclenews.com/sport/wo ... alty-2021/).
Perhaps this is something that can also work in F1? Instead of applying penalties after the race (which can cause confusion amongst fans, or ruin a driver's chance of celebrating on the podium), a driver will take a longer, slower lap. This penalises them immediately, potentially puts them behind a slower driver (or behind the driver they impeded).
I know that some F1 tracks like Monaco and maybe Canada may not be able to easily accommodate this, but for me it would be a better way of penalising drivers. I would still have drive-through and stop-go penalties for more serious offences.