make last_good_time more clear

While fixing a failing test I noticed that the drain buffer would cycle
between the shrunk sizing (10) and the default size (1024) rapidly
between reconnect attempts. This is an edge case surrounding a drain
that has never connected before. I altered the last_good_time atom to be
more clear in it's intension and simplified the maybe_shrink code a
little.
shrink and resize only when it is known to work