1) It depends on the motion controller that you are using.
2) It depends on where you use it.
Technically, you shouldn't need to use it in a While... IsMoving(), like this.
While IsMoving()
Sleep(10)
Wend
With the parallel port, Smoothstepper, or CNC Drives controllers, you don't need a sleep in the While...IsMoving, from my experience.
Apparently, it's required for many other controllers.
By itself, Sleep(1000) is just a 1 second wait.
With Mach3, it's often desirable to wait at times to allow the DRO's to update, which I think happens 10 times/second.
I'll often add a Sleep(250) whenever this is required.
Like when reading a DRO after a probing or other move.