this logic seems complex.

should this API instead just error out and force the user to handle reconnection with a new `Writer`?  This is what we did for direct `nsqd` connections in the `Reader` API.

It would simplify things...