prevent a possible live lock at server shutdown if limit-rate used

as the average is based on seconds, actually reschedule the client less frequently
so that it has more of a chance to flip over to the next second.
avoid dereference and addition when value is zero, in this lock case.
possible crash case on failed response to source.

If the response fails to be sent then a source shutdown is done but part of
the cleanup was missing.