Prevents deep recursion in the event of connection failure

The code isn't as readable as I like, but this is the only way I can seem to eliminate deep recursion if there is a connection failure.  This eliminates the extra call stack layer when we need to reconnect using `goto &func` but this requires setting up @_ manually above.
But what this avoids is deep recursion on connection failure.  We might be able to solve it instead by breaking off the connection/tx into a separate function and recalling until successful.