Sounds are queued when rules are executed. Movement rules put objects into states of "wanting to move", which are resolved after all non-late rules finish.
Not very intuitive... but I think it's fine the way it is. I haven't actually tried but I think you can add "rigid" before the rule and, perhaps, the sound won't play when a player doesn't move?