(Either way, we have to make sure that the timeout below does nothing if the callback was actually called already by the time we hit it.)