Any installed signal handler stops deadlock detection, but XCPU never happens in a deadlock
The runtime system's deadlock detection, being a debugging feature, rightly doesn't break a deadlock if there's any chance a signal will do so later. However, if the only installed signal is XCPU - cpu time-limit exceeded - then that will almost never happen in practice; any program that does want to wait for it will be waiting quite literally years.
As such, it seems best if XCPU is left out of the signal-detection logic. The attached patch does this.