Wakeup logic simplified.

The actual semantics of wake don't change, but are made explicit.