3d05d9ae2f
The watchdog discarded every overshoot longer than `sleepMs` (60s) as system sleep, on the rationale that "the process could not have run JS during the missed interval". That is true for a suspended process and false for a CPU-bound wedge, which is exactly the case where JS ran the whole interval at 100% CPU. Duration cannot separate the two: both produce an arbitrarily large gap. Keying the suppression on magnitude therefore dropped the most severe stalls and kept only the mild ones, so the probe went quiet precisely when it had something to report. Issue #5372 shows an 82,391ms block that 16.4.8 logged and current builds do not. Classify by mechanism instead. `cpuNow()` reads process CPU time, and an over-`sleepMs` gap is suppressed only when the process also burned less than half of it on CPU. A resumed process shows a gap it did not spend CPU on; a wedged one shows a gap it spent almost entirely on CPU. The observed CPU time is included in the log line so a reader can tell which kind of stall they are looking at. Refs #5372, #7328, #6145