Part of the problem on units gliding.
VisualActor refers to unit motion's m_CurSpeed to know what animation to display in the special walk mode. However that variable is inconsistently updated.
Because of D1893, we can more easily hit the position update code every turn, and update even when we aren't moving (so we aren't moonwalking anytime). We still need to handle STATE_STOPPING... For now ;)