I’ve noticed lots of people (including myself) being surprised that async {throw Exception(...)}
job fails and cancels the parent (non-supervisor) job, even though the Deferred<>
result also transmits the exception to the consumer.
It’s too late to change the default behaviour, but it would maybe be a good idea to add a common safe async function to the standard library.