Have a single timer for TCP drains that checks last_good_time.

As per Fred's suggestion, this is a lot simpler than resetting the
timer every time you buffer a new message since it doesn't require
re-cancelling timers over and over in a non-idle buffer.