Using an async timeout rather than thread sleep.