ci: count the wedge recovery's full bound in the HIL job timeouts' comments
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index d6db318..e6f0794 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -379,8 +379,9 @@
     needs: [ hil-build, set-matrix ]
     name: hil-tinyusb (${{ matrix.display }})
     # Above hil_test.py's pool guard (HIL_POOL_TIMEOUT, 60 min) plus its post-pool wedge
-    # recovery (HIL_RECOVERY_TIMEOUT, 10 min) so the guard fires first
-    # and still gets to write its report. The 30 min on top is what the job pays OUTSIDE
+    # recovery (up to ~14 min: HIL_RECOVERY_TIMEOUT 600 s + 170 s step overrun + 75 s
+    # cleanup + 10 s reap = 855 s) so the guard fires first
+    # and still gets to write its report. The ~15 min on top is what the job pays OUTSIDE
     # the guard clock: workspace cleanup, checkout, the multi-board artifact merge and
     # the D-state note before it; kill_worker_children, shutdown_pool's 30 s grace, the
     # report write and the upload after it. On a multi-stray convoy that tail alone is
@@ -493,7 +494,7 @@
     needs: [ hil-build-esp, set-matrix ]
     name: hil-tinyusb (tinyusb-esp.json)
     runs-on: [ self-hosted, X64, hathach, hardware-in-the-loop ]
-    # above hil_test.py's pool guard (60 min) and post-pool wedge recovery (10 min) with room for the pre-pool checkout
+    # above hil_test.py's pool guard (60 min) and post-pool wedge recovery (up to ~14 min) with ~15 min for the pre-pool checkout
     # and the post-guard sweep + report upload, so its own guard still writes a report;
     # only a job wedged past that (unkillable D-state worker) hits this ceiling, which
     # must exist because the runner has one job slot and holds every queued job hostage
@@ -583,9 +584,10 @@
     # Unlike the hil-tinyusb jobs, this one BUILDS with IAR in the same job before running
     # hil_test.py -- hfp.json's 3 boards, 4 variant entries, "up to 30 minutes" (see the
     # comment above the selection step). The ceiling has to cover build + the 60 min pool
-    # guard + overhead, or GitHub cancels before the guard can write its report -- the
-    # inversion this branch removes. 30 + 60 = 90; the remaining 30 is the full-history
-    # checkout, get_deps, the post-guard sweep and the report upload.
+    # guard + the post-pool wedge recovery (up to ~14 min, see hil-tinyusb) + overhead, or
+    # GitHub cancels before the guard can write its report -- the inversion this branch
+    # removes. 30 + 60 + 14 = 104; the remaining ~15 is the full-history checkout,
+    # get_deps, the post-guard sweep and the report upload.
     timeout-minutes: 120
     env:
       IAR_LMS_BEARER_TOKEN: ${{ secrets.IAR_LMS_BEARER_TOKEN }}