Capture reports err to Sentry on a cloned hub with the given tags. It is a no-op when err is nil or Sentry was not
initialized (no DSN). Use at transport boundaries to report errors no handler dealt with, mirroring the HTTP edge.
Close flushes buffered events; the service registers it as a shutdown hook. It is a no-op when Sentry was never
initialized (empty DSN), so it is always safe to register.
Init initializes the Sentry error tracking SDK. Returns nil if DSN is empty, skipping initialization. The service
owns the shutdown flush by registering Close on its app lifecycle.