Rémi Bernon (@rbernon) commented about dlls/windows.media.speech/recognizer.c:
if (!ref) {
EnterCriticalSection(&impl->cs);
impl->worker_running = FALSE;
LeaveCriticalSection(&impl->cs);
There too you'll probably need to notify the CV.
Notifying it every time one of the flags is changed is probably better to avoid problems like that, even if it's not always necessary.