User overlapped I/O instead of WaitForMultipleObjects