It should return immediately.
MotionDoneWait is MotionDoneGet with an internal loop to handle the Timeout passed in (Forever if you used that overload). MotionDoneGet checks that status bit of RSIEventTypeMOTION_DONE which I would l expect to be true when in IDLE.