Pauses, if necessary, to keep the instantaneous IO
rate at or below the target. NOTE: multiple threads
may safely use this, however the implementation is
not perfectly thread safe but likely in practice this
is harmless (just means in some rare cases the rate
might exceed the target). It's best to call this
with a biggish count, not one byte at a time.