Recalculate numWaitThreads all the time.

Before, it could go negative by having a thread woken a second time (e.g. because of a delete) before it actually scheduled and woke up.

Should've just done it this way from the start...

-[Unknown]