Apologies if I'm mistaken, but I just watched episode 126 and spotted what might be a possible rare bug. Hopefully I'm right and saving the pain from one of those nasty threading bugs that could cause a lot of grief later.
In win32_handmade.cpp in ThreadProc you're doing the WaitForSingleObjectEx in order to do Win32DoNextWorkQueueEntry which might fail to operate on the job if InterlockedCompareExchange fails.
So my thought is that the following could happen:
1) 2 jobs added to queue
2) 2 threads pass WaitForSingleObjectEx and enter Win32DoNextWorkQueueEntry at the same time
3) 1 thread fails the InterlockedCompareExchange and doesn't do any job
4) Now the semaphore is at 0 so WaitForSingleObjectEx won't pass for another thread but there's still 1 job in the queue
So the solution to this would be when InterlockedCompareExchange fails, the thread would need to do ReleaseSemaphore(Queue->SemaphoreHandle, 1, 0); so that another thread can do the job that was missed.