Маршрут всех ТС, разбить на отрезки(у каждого отрезка свой id, дальше написано зачем). Получаться waypoints. Двигаем ТС от точки к точке, без всяких твинеров. Отдельно храним пару id, отрезков которые пересекаются. На каждом шаге проверяем отрезки по которым двигаются ТС, если какие-либо отрезки пересекаются, для разных ТС, то дальше по приоритетам останавливаем соответствующее ТС.