make reader's handle_dependent_exit clearer
- handle the no-op case (controlled exit of a channel we've forgotten
  about already) explicitly
- better clause order and formatting.