And distinguish exit codes
If PRs aren't open (either merged or closed), GitHub never computes whether the PR is mergeable, so we'd wait forever, which has been happening: https://github.com/NixOS/nixpkgs/actions/runs/11279197077/job/31369348101#step:2:59
This is useful for other workflows as well. Originally I thought it couldn't be put in the repo, but it can (just needs another checkout)