Narrow the shutdown and transient fetch-error sets
Commit

Review of the mirror-pipeline branch consuming these predicates surfaced two mis-classifications:
-
nats.ErrConsumerDeleted leaves transientFetchErrs. Resubscribing does recover from it, but by silently recreating the durable with the subscriber's default deliver policy and no ack state — replaying the stream's retained backlog. A durable deleted mid-run is operator action or a bug, and the log line is the only evidence.
-
IsShutdownFetchErr returns to {ErrConnectionClosed, ErrConnectionDraining}: only self-inflicted teardown errors may exit silently. The other interruptions can coincide with shutdown while meaning something real, so callers log them instead (below error level via IsTransientFetchErr).
Also documents that the ErrTimeout/DeadlineExceeded exclusion is fetch-path reasoning: subscribe/create retry paths must classify timeouts themselves (mirror-pipeline's natslog now does).
Co-Authored-By: Claude Fable 5 noreply@anthropic.com Claude-Session: https://claude.ai/code/session_01Jgc5C2o3mEmc6FNBBpEfH4 Entire-Checkpoint: 64053c53db8e