Nice.
Does your code try to track a preset profile, or is it moving from waypoint to waypoint, with a constraint on rate of change?
Or maybe more concisely, does each reflow take the same time, or does each run change in response to how things are performing?