Return `UV_EAGAIN` on `ERROR_OPERATION_ABORTED`. Use the correct format for `overlapped.hEvent`. Some refactoring to always wait for the overlapped result. Modernize tests and some improvements.