TL;DR
Allow the player to define complete routes in an interrupt rather than one interrupt for each part of it.What ?
The basic problem with interrupts is one of timing. You can tell the train not to do something if the station is full. The problem is that you can't express something like "the (item) unload station corresponding to the (item) load station you want to go to, is not full". By the time you can ask whether the station is full, it's too late. You have already loaded the cargo that you want to unload but the unload station is full.I suggest that the player should be able to use wildcard (any) signals in train station names- these are already available as signals but I believe has no special meaning. They would now match the station name. When evaluating the interrupt it would have one fixed value for all conditions/stations. So for example, you would define an interrupt as conditions: (any) load not full, (any) unload not full, cargo empty -> go to (any) load until full cargo, go to (any) unload until empty cargo. This would mean the train can't leave to load items until the unload can accept them.