Reapply @elupus 's fix to the Condition variable for windows. This also handles the case where the CritSec used for the ConditionVariable is entered more than once; something the native windows calls don't allow.