Issue #23571: Enhance _Py_CheckFunctionResult()

Too bad, sometimes Py_FatalError() is unable to write the exception into
sys.stderr (on "AMD64 OpenIndiana 3.x" buildbot, the buildbot was probably out
of memory).

Call Py_FatalError() with a different message for the two cases (result+error,
or no result and no error).
diff --git a/Lib/test/test_capi.py b/Lib/test/test_capi.py
index 8a92d6b..fbd1466 100644
--- a/Lib/test/test_capi.py
+++ b/Lib/test/test_capi.py
@@ -185,8 +185,8 @@
             """)
             rc, out, err = assert_python_failure('-c', code)
             self.assertRegex(err.replace(b'\r', b''),
-                             br'Fatal Python error: '
-                                br'Function result is invalid\n'
+                             br'Fatal Python error: a function returned NULL '
+                                br'without setting an error\n'
                              br'SystemError: <built-in function '
                                  br'return_null_without_error> returned NULL '
                                  br'without setting an error\n'
@@ -212,8 +212,8 @@
             """)
             rc, out, err = assert_python_failure('-c', code)
             self.assertRegex(err.replace(b'\r', b''),
-                             br'Fatal Python error: '
-                                br'Function result is invalid\n'
+                             br'Fatal Python error: a function returned a '
+                                br'result with an error set\n'
                              br'ValueError\n'
                              br'\n'
                              br'During handling of the above exception, '