We have a data race on when to notify components (read unitAI) of the succes or fail of a movement. Currently it is done right before (but in the same message as) updating the position. This leads to the following: suppose the unit reaches its destination at turn n. Then the components are notified only at turn n+1. In case the unitAI decides to move further (this happens often, since it is the case of shift clicked walk order), we request a path, but only start move the next turn, ie n+2. So the n+1th turn we are standing still. This is noticable ingame: shift click a unit on some walk orders and see the unit stopping a turn on each waypoint. Do notice the animation continuing however. This issue is probably classified as lag in most cases (it looks the same), but the source is very different.
A way to fix this is to send the succes message earlier in the turn, such that the component can react immediately. The bad thing here is that we send yet another message to every unitMotion component, which should raise the performance eyebrow.
One should think about when to send the succes messages: before or after orders are processed.
Idea taken from @wraitii on irc.