And like I said, you basically can't without going to low level tricks. Instead my recommendation would be something like this:
Code:
Delay_ms = 1000
GOSUB WaitHere

WaitHere:
For ms = 1 to Delay_ms
  Gosub CheckInputs
  PAUSEUS 900  ' Tweak this to get correct timing, value depends on execution time CheckInputs.
NEXT

RETURN

CheckInputs:
' Do whatever here, but no pausing etc
' If the delay should be terminated set ms = Delay_ms which will then terminate the FOR-NEXT loop when it returns.
RETURN
/Henrik.