Rewrote calculateIntervalStepLength(). The search for a transition from sliding to rolling is now handled separately from the search to limit the change in the sliding direction. Tested several iterative strategies; ultimately reinterpreted the requirements geometrically and solved in closed form. The new algorithm is robust, devoid of iteration, and always finds the largest suitable step length.