Make .ready fulfill-only

Closes #245. Review appreciated!
I mainly added this because it's well-defined and so we should test it. The sequence is:

- "waiting" to "closing" => fulfill .ready (and thus enqueue a microtask to call the fulfill handler)
- create immediately-fulfilled promise out of close() result => enqueue microtask to do "closing" to "closed".