The dual-limit CPU test used ulimit -t 1 (hard == 1), which the _clamped soft-lowering guard (hard >= 2) intentionally does not lower, and trapped SIGXCPU (which defeats the fix). Use ulimit -t 2 (hard == 2, so the soft is lowered to 1) and leave SIGXCPU unhandled; the run then classifies as a timeout. The message is the CPU-time-exhausted diagnostic, not the literal 'SIGXCPU'.