Try sticking a pause after the domove command, eg.
unit domove position
~1
@ unitready unit
Yup, pause is the way to go...
But it should be longer than one sec though... (I know Sui, it's just an example ;D )
I had this similar problem a while back with one script of mine...
It seems the unitReady checks whether the unit is stopped after the doMove command because if you order the AI to move from opposite direction than it's facing, it takes several seconds before the unit is actually obeying the doMove (the unit must 'wake up',make a smaal twitch, turn, make a small twitch, and then start to run...) so the engine thinks the unit has already obeyed it's order as it was given the doMove order and it's not moving anymore...
So, the doMove command is not 'active' until the unit is actually moving and so there needs to be a pause between the doMove and the unitReady check...
Someone will probably say I'm wrong, but this is my experience with it...