A cancelled step's cleanup trap runs even when the runner was started with SIGINT ignored, and the backup test tags with its own identity
A shell cannot trap a signal it inherits as ignored, and a runner started in the background passes SIGINT on ignored, so a cancelled step went straight to the kill after the grace period. Each step now starts with SIGINT, SIGTERM and SIGQUIT at their defaults. CI on g1t's own runners caught both: the cancellation test, and a backup test whose annotated tag needed a committer identity the machine does not have.