TL;DR
Add an optional parameter to train stops to limit the number of simultaneous inbound trains.What ?
The train stop GUI should provide an optional field for specifying the maximum number of *inbound trains. When the limit is reached, any other trains that would otherwise be routed to that stop should either wait for an opening or go to another valid stop with the same name. Also, to prevent this from causing deadlocks and asinine delays, trains would also have to occasionally swap reservations with each other.It might also be worthwhile to make it circuit-controllable (output the number of inbound trains as a signal and input the limit from a signal).
(*) A train would be "inbound" to the train stop either when it paths toward the stop or if it is stopped at the train stop, and the train would cease to be "inbound" when it departs the stop, when it gets re-routed to another stop with the same name, when it gets de-automated while en-route, or when it gets de-constructed or destroyed.