c/multi: Improve condition var waiting
Spurious wakeups happen, have to actually have a condition to check in a loop with the cond var wait.
I think this might fix #171 (closed) . There's also a commit in the middle (handle more than one client thread) that I'm not sure is required. I have mostly not tested this except with Vulkan on Windows.
cc @wallbraker