The main line trains are never delayed by the side line trains waiting to merge. The side line trains only merge when there's a gap in the main line, which I've artificially created by having a random selection of main line trains pause at the station for one second. Priority between the main line and the side line here is implemented with just one wire between the rightmost reverse-direction chain signal and the rail signal from the merging side line. The other chain signals propagate the block reservation on the main line so priority can be given for an arbitrary distance without having to run wires the whole way.