Well.. time is time on any machine, so go with Millisecs() over any frame-based delay.
I usually do something like this :
If MilliSecs()<=ReloadPause
Update Moving Things
Else
Check User Input
If ReloadPressed Then ReloadPause=Millisecs()+3000
End if