Both, sleep_for
and sleep_until
may sleep less than the specified time, because the implementation is free to be susceptible to system clock adjustments (albeit it is recommended to not be).
Clock adjustments should be rare, and I don’t think any caller of UninterruptibleSleep
(except for one unit test) relies on it always sleeping at least that much.
However, it shouldn’t hurt to fix this by ensuring a steady clock is used to measure the lower bound.
Presumably fixes https://github.com/bitcoin/bitcoin/issues/32197