elros, что-то я тебя не понял. Наверное, ты действительно на работе и там у тя "голова слабо варит" :-). Ждать N времени, Wait for trogger и т.д это всё не катит! У меня не два трамвая, а несколько магистральных составов, которым нужно в кратчайшее время быть в пункте назначения, и обернуться с порожняком, опять же в кратчайшее время.
Чтоб несколько уяснить ситуёвину, заново опишу алгоритм.
Исходные: три станции A, B и C. Из станций А и С навстречу друг другу вышли два поезда, поезд 1 и поезд 2. (Что-то мне это напоминает детский мультик, который я смотрел..эээ, а, локомотивы всё равно столько не живут

) Все три станции имеют два боковых (три пути, то есть, на каждой). как им разойтись на станции B? У меня реализовано пока так. Когда по станции А поезд 1 прошёл входную горловину, он тут же блокирует входную (для него входную, для поезда 2 - выходную) горловину станции B по главному пути. Поезд 2 идёт заведомо с отклонением, то есть по 3-му пути, независимо от того, идёт ли на него поезд 1, или там аж до... перегоны свободны. Когда он проходит средину станции B того самого 3-го пути, на который он ушел с отклонением, он пытается собрать маршрут от B до A. Поскольку есть встречный поезд и он уже заблокировал горловину, собрать маршрут отправления не удастся - остановится на красный выходной. Вот это и есть трамвайная реализация.