The previous NullWaitObject fix only covered WaitSynchronizationN (0x25).
WaitSynchronization1 (0x24) had the same issue: handle=0 returned
ResultInvalidHandle immediately, crashing any process whose wait handle
had not been populated yet.
Apply the same fix: handle=0 is substituted with a NullWaitObject so the
thread sleeps until the timeout expires and receives ResultTimeout, matching
real hardware behaviour.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>