Good evening Coffee Stain,
First off, damn Satisfactory is an amazing game!
I'm a software developer in the US, but before this career, I spent ten years working on railroads here, including four years working for Norfolk Southern RR.
I thought I would give my two cents on a possible solution for the railroads, and collision issues.
On the main railroads here, we use automatic block signals and interlocking's for train control. I think this system would be a very stable and lightweight system for collisions in Satisfactory. Ill give a brief overview, and some in game examples that may or may not help.
Interlocking's are absolute signals, you can not pass them with a stop (red) signal, while automatic signals in between the interlocking's, you can proceed at a reduced speed even on a red signal. Also automatic blocks become unidirectional once a train has ownership of it, all the way to the next interlocking. Once that train clears, it can flip back to bidirectional. In the railroad, unidirectional is known as 251 track, and bidirectional is 261 track. 251 track will never flip directions. Automatic blocks can be split up for longer distance sections between interlockings, or not exist if the distance is too short between interlocks.
The red areas are interlocking's, including the station. The entire station in this would be considered 1 interlocking. Only one train at a time can exist inside an interlocking, or in an automatic block. The idea i had to do this is with blocks/interlocking's and a ownership/queue for each section.
The basic premise is, each block will have a current owner, direction, and queue. Also diamonds, for the sake of appearance would need to be interlocking's as well. Long sections between interlocking's could also be separated into multiple automatic blocks, so that trains traveling in the same direction, can follow each other along. One other thing that might help with this, if you have multiple interlocking areas that would overlap each other, combine them into 1 interlocking, like the example below.
Any one train owning interlocking three, would block any other movement through the interlocking. Where as a train owning interlocking four going to interlocking one, would not block a train in interlocking's two, three or five.
I wanted to keep this short for now, but if you would like any more information on this, please feel free to contact me, and I will help out however I can.