А похоже можно трюк использовать, в форе обычном выставить большое количество итерации, а потом при необходимости его остановить. Правда неоч понятно как.
Ну короч, ты можешь пробовать через каждую длинну отрезка проверять свои условия и если надо сделать поворот, то удалять оставшийся путь, ставить точку огибания куда-нибудь подальше и запускать новый путь к концу от позиции где остановился. И это всё в "условно бесконечном цикле" пока не дойдёшь до конца пути.