gh-125842: Fix `sys.exit(0xffff_ffff)` on Windows
On Windows, long is a signed 32-bit integer so it can't represent 0xffff_ffff without overflow. Windows exit codes are unsigned 32-bit integers, so if a child process exits with -1, it will be represented as 0xffff_ffff.
Also fix a number of other possible cases where _Py_HandleSystemExit could return with an exception set, leading to a SystemError (or fatal error in debug builds) later on during shutdown.
- Issue: gh-125842
:robot: New build scheduled with the buildbot fleet by @colesbury for commit 8864fef683af3f2551e91fe59cc1783d2f7c22b9 :robot:
If you want to schedule another build, you need to add the :hammer: test-with-buildbots label again.
Thanks @colesbury for the PR 🌮🎉.. I'm working now to backport this PR to: 3.13. 🐍🍒⛏🤖
GH-125925 is a backport of this pull request to the 3.13 branch.