Having multiple routes between any two points seems to be a good
way to avoid your train network jamming up. These could be
completely different routes, perhaps one going north then west,
while another goes west then north, to reach the same point, but I
suspect that this often results in uneven routes, with trains
preferring one over the other.
Alternatively (or in addition), I've found doubling or tripling
each track to be more effective. Trains can divert past each other,
avoiding breakdowns and overtaking slower trains.
Naïve approaches, however, are insufficient. Simply having two
tracks side-by-side doesn't allow trains to overtake slower trains
or breakdowns. And adding level crossovers means that trains
travelling in parallel will have to wait for each other when they
reach that crossover (unless you have PBS), even though they might
prefer to stay on their current tracks.
Two tracks
Instead, for two tracks with a 1-tile gap between them, it's
fairly straight-forward to make each one branch across to reach the
other, then have one of the branches tunnel under (or bridge over)
the other. Two trains, arriving on different tracks, and intending
to leave on different tracks (but not necessarily the ones they
started on), can use the crossover at the same time without any
waiting.
Three tracks
Better still, have three tracks! But to achieve the same goal of
allowing any train to go from any track to any track without
interfering with any other train not connected with either track,
you need a much more complex crossover.
My procedure for inserting one of these into a possibly-live
piece of track is as follows:
First, identify one track as the straight one, and force traffic
on the other two tracks to use it, near where the crossover will
start.
Similarly, estimate where the end of the crossover will be, and
allow the traffic to split apart again. The two unused tracks can
be removed now, to make way for the crossover.
We'll label the row of tiles used by the retained track as
A. The next row, which we've cleared, will be
B, and so on.
(These alterations will be removed once the crossover is
complete.)
After the track has merged, branch it out again diagonally to
span 5 tiles (A to E), then continue along
E in parallel with the original track a short distance
(5 or 6 tiles, just to help you remember where you are).
You can now put two tunnels under the diagonal section, each of
external length 4. After the B tunnel, lower 5 more
tiles, then another tunnel of 4.
After the D tunnel, lower one tile, then another
tunnel of 4, then lower another tile, then a tunnel of 2! — and
finally lower two more tiles.
Now, as soon as possible from the first tunnel on B,
branch across to C, and go up the ramp so it's back on
the original level. Immediately branch across to E.
Also, continue along C far enough to collect a
similar branch from A, then go two more tiles. On the
original level, that's 6 tiles altogether.
On row C still, at the end of the track so far, make
a ramp down with the next tile, then keep the next two at that
level. Span this dip with a bridge of length 4.
On row D, out from the 2-tile tunnel, continue
straight for two tiles, before rising up and merging with the
bridge line, and then sliding over to row B.
Row E is all but complete. Just continue along
E, until there's room to slide back across to
C, just after the bridge.
Back on D, branch under the bridge to B,
before rising and joining A.
On B, rise up out of the tunnel, then slide across to
join A.
Back at the end you started on, make row C branch
onto D to descend into the tunnel. C itself
should continue until it hits the long diagonal.
Add signals and remove the two diversions before and after the
crossover as you connect up the main tracks to it.