If 2 or more semaphores (on which a thread is executing
WaitForMultipleObjects), is signalled at the same time, the return
value of Wait is the index of the first value in the array whose Sem
was signalled.
- do the other Semaphores stay in a signalled state and cause the Wait
function to return again ?

Also, any ideas of how to test this scenario ?