Don't they overlap in what exceptions they catch? I wonder if `safeThreadCalls` doesn't swallow all runtime exceptions already.