Very nasty and very hard to detect. I've seen it before.
whats hard about checking vehicleid changes in onplayerupdate and return 0 if its changed without entering a vehicle by animation? (set the allowed vehicle value before "PutPlayerInVehicle" so it wont fail)
in races a vehicle change is never needed so you can directly kick and desync. the player will never seen changes or even get remotecontrolled. :3 hope it helps you ^-^