The hang occurs because the game inexplicably calls `Shutdown()` on a source which is starting, so that asynchronous execution of the start command fails. The `Shutdown()` call doesn't normally occur at all, so the issue is not a race between it and asynchronous start. The reason for the spurious `Shutdown()` is very difficult to find. I'm the third dev to look at this bug, so it's unlikely we will find it. It seems likely to be a game bug, and shifting the timing to more closely match Windows hides the bug. I'll close this if you think the code should remain unchanged.