Add half-open recovery to sync circuit breaker for transient failures
A 19-hour server outage revealed that once the circuit breaker tripped on
transient errors (5xx/network), sync was permanently disabled until service
restart. Add cooldown-based half-open state with exponential backoff
(30s → 60s → 120s → 300s cap) that probes the server via get_server_segments
before resuming full sync. Auth/revoked circuit stays permanently open.