Fix subinterpreter exception handling SEGFAULT (#5795)

* check for current exception, not uncaught_exceptions

* remove all in-flight exception handling from ~subinterpreter_scoped_activate
diff --git a/include/pybind11/subinterpreter.h b/include/pybind11/subinterpreter.h
index 1bdcc26..4b208ed 100644
--- a/include/pybind11/subinterpreter.h
+++ b/include/pybind11/subinterpreter.h
@@ -280,28 +280,6 @@
         // We were on this interpreter already, so just make sure the GIL goes back as it was
         PyGILState_Release(gil_state_);
     } else {
-#if defined(PYBIND11_DETAILED_ERROR_MESSAGES)
-        bool has_active_exception;
-#    if defined(__cpp_lib_uncaught_exceptions)
-        has_active_exception = std::uncaught_exceptions() > 0;
-#    else
-        // removed in C++20, replaced with uncaught_exceptions
-        has_active_exception = std::uncaught_exception();
-#    endif
-        if (has_active_exception) {
-            try {
-                std::rethrow_exception(std::current_exception());
-            } catch (error_already_set &) {
-                // Because error_already_set holds python objects and what() acquires the GIL, it
-                // is basically never OK to let these exceptions propagate outside the current
-                // active interpreter.
-                pybind11_fail("~subinterpreter_scoped_activate: cannot propagate Python "
-                              "exceptions outside of their owning interpreter");
-            } catch (...) {
-            }
-        }
-#endif
-
         if (tstate_) {
 #if defined(PYBIND11_DETAILED_ERROR_MESSAGES)
             if (detail::get_thread_state_unchecked() != tstate_) {