strengthen the invariant that an item will only appear once in the Workqueue, and remove statement on ordering of return value of wait(...), instead just returning any return status at random from the things that notify during the interval
avoid waiting on things (e.g. Tasks) that are already done, and check invariant in some more places