What can be done about this? IMO it would be best to enforce that all destructors are noexcept to avoid aborting the program. And from the python user's perspective, functions like Schedd.submit() can raise exceptions if something goes wrong, but we should avoid raising exceptions purely at the time of object destruction, e.g. it shouldn't be possible to get a python exception in reaction to a Schedd object's reference count reaching 0.
Thanks for the great bug report and reproduction! One of my coworkers told me about this problem just recently, but we haven't had a chance to fix it yet; I'll let them respond to you with more details when they get back to the office next week.
-- ToddM