In many cases I would not be concerned about the overhead, but in this case it is in a high priority thread which runs continuously and is a big CPU drain. It gets called at the sample rate (48K) and some API functions are slow. Since this thread is also handling all the DSP work (lots of FPU and so far only one tap because I have been cheap on the filtering) the calls to SetEvent() may be trivial relative to an FP multiply (of which there are many).

Even though I may only need Sleep(x) functionality, I would take
WFSO(hevent, x) over Sleep() if it is more accurate and more efficient. They both work equally as well even if I don't need the hevent functionality.

Thanks for the hint with getting the state of the event!

Brian