Cuando un proceso queda bloqueado por un Wait() sobre una variable de tipo Condition, libera el monitor que contiene a dicha variable.
Fijate que si no lo liberase quedaría todo en deadlock porque nadie puede hacer un Signal si no está ejecutando dentro del monitor.
Saludos,
Gustavo