When trains jam up (“waiting for free path”), they will randomly switch tracks if the other track is empty, and convenient track switching is available. Each train dynamically searches for a clear path to the next stop, and does not care which platform it uses when it arrives. This is what you need to consider, whenever adding switches and multiple track alternatives that a train can use to reach its next stop.
I typically prefer to build a double track loops, and run trains in both directions (clockwise and anticlockwise). But even this was not enough, as the Lines would randomly switch track (random changing from left hand drive to right hand drive) and the trains would get into horrible messes trying to change over. I tried using signals, and waypoints, all to no avail. I did not know that all signals were bi-directional by default, and merely divide a length of track into two sections.
But using One Way signals, specifically setting each signal to “one way” (select “yes” in the dialogue box that pops up when you click on a traffic light signal) sorted that problem entirely. The lines now remain fixed on each track, and the trains run perfectly. Note that just one signal is adequate to force the direction of each track (and the line that runs on it), if there are no points/switches linking the two. I’m also now in the habit of building a depot on each side of the doubletrack, one for each direction, to avoid the need for trains to ever cross tracks, but that is unnecessary with correct signals.
To force the exclusive use of longer stretches of double track, add a single signal to the outside of each track, just before the points (switch) at each end. Trains will need to stop while on the double track if the single track ahead is blocked by another train. TF prefers the “left hand drive” track usage, so place your signals accordingly, but it really doesn’t matter for the “passing loop” situation. I’d stick with convention, in case of an eventual upgrade to full doubletrack.
Once built, click on each of the two signals and select the “yes” option to the “One way” question. Any train approaching from a single track section will examine the two tracks ahead, and discover the left hand track is obstructed by the one way signal close by, while the right hand track is permitted by the one way signal that allows it to pass at the far end of the double track. The train will always smoothly choose the only track available.
You can add more signals along the length of the double track to “stack” waiting trains. Just make sure that you always build signals on the outside of the double track.
Note that it is only necessary to set ONE signal on each track to “one way” to force the exclusive selection by each train. Setting them all to one way is not a problem, except that if you make a mistake with signal placement, you might end up blocking the track by making it one way in both directions (ie unpassable) with conflicting signals.
One way signals have given me all of the control I need. Waypoints should also work, but they are not direction dependent, and can be passed / ignored by trains that are not required to pass through them. They will force trains on that line to use that track, but they do not stop other trains from using it too, nor do they control direction, and that’s how the jams can still happen. Forcing all lines to use the correct waypoints at the correct moment is much, much harder than controlling the track usage with one-way signals. Waypoints also caused problems when trains advanced on the wrong track because it was free, only to have to reverse to one of the rare switches I had, to get onto the other track for the required waypoint.
In a nutshell, careful placement of one-way signals, will always guarantee which trains use which section of double track. Whenever you have switches that allow trains to change tracks, you need to consider whether one-way signals are needed to control which track a train will choose.
While I agree that double track performance is lacking (especially the line planning randomly changing the track it prefers), the trivial effort to build one-way signals to sort all of that out, is effortless compared with building the track itself.