I guess there's a lot of internal stuff done during a wait. Perhaps a c_move would ensure it all got updated? The function should be efficient enough that with IGNORE_WORLD | IGNORE_MAPS | IGNORE_SPRITES it wouldn't be wasteful. It's just a matter of whether or not it works...