The problem here is that the state is "idle" for 1.25 seconds before it changes to "stop" and for every tick during those 1.25 seconds you are running those actions.
So it's like:
Tick 1: Set speed, wait 1 second, set movement enabled, wait 0.25 seconds, set movement disabled
Tick 2: Set speed, wait 1 second, set movement enabled, wait 0.25 seconds, set movement disabled
Tick 3: Set speed, wait 1 second, set movement enabled, wait 0.25 seconds, set movement disabled
Tick 4: Set speed, wait 1 second, set movement enabled, wait 0.25 seconds, set movement disabled
etc...
1.25 seconds after the first tick where state was "idle", it will set the movement disabled and the state to "stop", but you still have 1.25 seconds worth of events queued up that will set it to enabled again. The movement is going to be set enabled - disabled - enabled - disabled until all those queued up actions finish running and you get that extra movement that you see.
What you want is to only run this block of events once when the state becomes "idle" which you can do using "System: Trigger once".
Here's a capx that highlights the problem: