Впрочем, не зная Вашей задачи и что именно было защищено мьютексом, конечно, нельзя предложить конкретное решение - но чутье мне подсказывает, что если постоянно приходится вызывать из критической по времени нити WaitForSingleObject с нулевым таймаутом - что-то тут не так архитектурное. В общем, то, что Вы так реализовали, еще не означает, что нет других решений.