Encourage use of Future.exception over throw for non-fatals.

This PR supersedes Moses' earlier one which addresses these points. I've taken Marius' changes into consideration, modulo some formatting and minor wording cleanups.
i'm not sure this distinction is important right here; also the line is blurred somewhat by the presence of interrupts.