If waiting for multiple handles is the issue (why?)
A couple of reasons: ferrying a variable-size handle list from the server to the client feels awkward and waiting on the multiple handles can be tricky [does this work? https://gitlab.winehq.org/wine/wine/-/merge_requests/7797/diffs?commit_id=40...].
Those have been mentioned in https://gitlab.winehq.org/wine/wine/-/merge_requests/7797#note_102534 and https://gitlab.winehq.org/wine/wine/-/merge_requests/7797#note_101439
Note also that it is not needed to do NtWaitForMultipleObjects for multiple handles (which maybe can be unfortunate in the view of nsync, and anyway there is a limit on the number of handles there). It is possible to wait for single object one after another.
I suggest you look at the previous version of this MR, it was probably much closer to what you expect.
Let me know if you think I should go back to the old way altogether.