Well, it needs much more look for details which I didn't (just e. g., it probably can't first cancel asyncs and then fail with `STATUS_BUFFER_OVERFLOW`, that should be checked first because otherwise asyncs are already canceled and client can't retry
That should be handled correctly IIRC.
One of the concerns with the old approach was [https://gitlab.winehq.org/wine/wine/-/merge_requests/7797#note_102524]. If that's actually considered not a worry I can basically restore the very first version of this MR (which also waited for the handles one by one IIRC) and be done with it.