I tested my algorithm and found that it must check which location is nearest when it swaps:
if(RadiiFromNearest <= GoalThreshhold && NearestLocation == EndLocation)
{ // swap start & end locations }
otherwise it gets stuck in a fit of switching the start & end locations frame-by-frame and locks the platform once it first arrives at the initial EndLocation.
[spoiler]i created my test case in GameMaker Studio 2, not Unreal, because i am a scrub and it was easier :^)))))))))[/spoiler]