For qualifying the option to enforce HLVC, where a fail means the laptime gets deleted, would probably be the simplest solution - though that would involve fixing the HLVC bugs, if they still exist, and presumably wouldn't help for open configs - maybe having checkpoint/circle objects that can trigger HLVC fail would work there.
I suppose a time-penalty option would be needed for one-shot quali.
For races, I like the idea of being able to set somewhat arbitrary time penalties, to be served either at the next pitstop or by a race time adjustment (F1 rules).
However, I'm really not a fan of instant off-track/cut penalties during races as it's often not fair. When racing in close quarters with others, you could end up running afoul of it through no fault of your own and/or without gaining an advantage.
This is usually handled IRL by having a number of strikes where you can trigger a cut timing line x number of times before gaining a penalty. In endurance races, this is usually defined as x per hour.
tl;dr for some "easy" (hah!) wins:
- Arbitrary time penalties.
- a) Race: issued by admin/InSim for served at stop/race time. (HLVC is too strict for this, we're not MSV I hope)
- b) Quali: issued by admin/InSim/HLVC.
- Option to have HLVC delete a lap or add time penalty in quali
- Control objects to trigger HLVC (behaviour as #2)
For racing, I think there are so many variables, it may be too complicated for LFS to have a good general solution. InSim preferred IMO (helped by 1. above).
An x strikes system based on race length *may* be doable without settings getting out of hand, but I'm not sure how useful it would be without built-in less-strict-than-HLVC detections.