I think there's likely something wrong with the accounting for references in the immortalize=1 case in intern_common because this shows up in the free-threaded build, but not the default build.
./python -m test test_sys -m test_intern -R 3:3
Using random seed: 3390398091
0:00:00 load avg: 14.98 Run 1 test sequentially
0:00:00 load avg: 14.98 [1/1] test_sys
beginning 6 repetitions. Showing number of leaks (. for 0 or less, X for 10 or more)
123:456
X8. ...
test_sys leaked [-2, -2, -2] references, sum=-6 (this is fine)