Package clock holds the wait seam every retry and poll loop sleeps
through. Production code sleeps with Sleep, which ends early when the
context ends (a SIGINT cancels the command context, see cli.WatchInterrupt);
tests install NoSleep so waits are instant.
SleepFunc waits d or until ctx ends. It returns nil after a full wait
and ctx.Err() when the context ended first, so a loop that sleeps
through it stops on a cancel instead of running its remaining retries.