Bottom line, if the process/thread/eventlet/whatever that sends an email ever exits without sending the email and doesn't somehow queue the task to be retried with some reason to suspect that it will eventually succeed, no scheduled report email will ever be sent, and that's a bug.  I don't even get how this throwing of exceptions "into" things works, but when would whatever does that not be able to handle it if it was caught?

I guess if you had a scheduled report with three report configs that each took 500 seconds to generate the report for, and something tried to kill a task after 100 seconds, then if it was caught and execution continued and the something that tried to kill it didn't then throw another exception into it after another 100 seconds, you could end up with a ballooning queue or something?