Would it not be a bad idea to use `setTimeout` as a fallback, instead of just running it synchronously?