Have for example 3 states on each car in a loop, and 3 checkpoints (or however many you want).
Each checkpoint has an INT variable. 1, 2, 3.
On each car, have 3 states. One, Two and Three.
As the car passes each checkpoint (trigger), check your state (for example State one), does an INT compare for the current check point fsm. If true, go to next state (two). If false, do nothing. This can force each car to go in order.
This would take care of the multi player car problem at least