This is what I use most of the time.. the midnight checker could be more robust if you really car about having the correct delay at midnight.. but for small amounts of time it wouldn't be noticable.
Public Sub pause(wait As Double)
temp = Timer
While Timer - temp < wait
If Timer - temp < 0 Then temp = Timer