Allow separate threads to wait on async io.
Wake up waiting threads on file delete.
Refactor wait verification a bit in kernel waits.
Use a different wait type for async io.
Add io async wait callback handlers.
Merge pull request #3675 from unknownbrackets/io-async

Improve io async waits, callback handlers