BTW, a serious problem with just passing it off to pg_usleep like that
is that the sleep can't be aborted by a cancel request; doesn't seem
like a good idea to me. I'd suggest writing a loop that sleeps for at
most a second at a time, with a CHECK_FOR_INTERRUPTS() before each
sleep. This would also allow you to eliminate the arbitrary restriction
on length of sleep.
regards, tom lane