The background watchdog subshell inherited the step's stdout/stderr; when cargo test finished, its lingering sleep child kept the pipes open and the runner aborted the step with "exec: WaitDelay expired before I/O complete". Redirect the watchdog to /dev/null and reap it after the test so the step's I/O closes cleanly.