I assume it's not intended, but that's how the code works for task executers without navigator. If the last time the code was called was longer than 0.01 model time units ago (which makes an implicit assumption that seconds are used) a task to move to the target location is dispatched. Because the ASRS will first retract the slide before extending it again to reach the target location, the movement takes longer than this time and is repeat again indefinitely.
To fix this, either use coordinates that lie along the centerline of the ASRS' track as the home location or adjust the code to automatically only travel along the track and don't extend the slide.

...
else { // task executers without navigators (like the crane)
// this prevents stack overflow (I only want to travel there if I'm not there yet)
if (fabs(Model.time - current.labels.assert("f_travelhome_time", 0).value) > seconds(0.01)) {
current.f_travelhome_time = Model.time;
TaskSequence ts = TaskSequence.create(resource);
// use offset travel instead of regular travel tasks
Vec3 destLoc = dest.getLocation(0, 0, 0).project(dest.up, current);
destLoc.y = -current.size.y/2;
destLoc = destLoc.project(current, current.up);
ts.addTask(TASKTYPE_TRAVELTOLOC, NULL, NULL, destLoc.x, destLoc.y, destLoc.z);
ts.dispatch();
return 1;
}
}
@Jeanette F Could you please pass this along to the team, so this might get improved in one of the next versions?