fix: don't re-register garden on transient auth failures
Garden socket was clearing credentials and re-registering whenever
reauthentication failed, including for connection/transport errors.
Now only re-register when the server actually rejects the credentials
(4xx response); bubble up transport and 5xx errors so the socket
reconnect backoff handles the retry with existing credentials.
sow-173
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>