re-enable isAlive tests
raise exception when trying to unlock a monitor we don't own
abstract waiting on objects
unlock all levels when entering a wait state
re-take multiple locks when returning from a wait if needed