Closes ADR-0023 hot-reload Phase 3 (telemetry sampler). Last sub-phase
of the 3-PR sequence: 3.1 = ReconfigureTracerProvider in pkg/telemetry
(PR #45), 3.2 = sampler callback plumbing in pkg/config (in main via
PR #47 race-merge — see Q-038 in mistral-quirks.md), 3.3 = wire it in
pkg/server.Run (this PR).
Implementation:
- Capture telemetrySetup pointer (was a local) so it outlives initial
setup and the sampler callback can mutate it.
- After WatchAndApply registration, register a callback that:
1. Mutates SamplerType/SamplerRatio on the captured Setup
2. Calls ReconfigureTracerProvider (which builds the new TP, swaps
the global, drains the old)
3. Updates s.tracerProvider so graceful shutdown still drains the
correct provider.
- Callback only registered if telemetrySetup != nil (telemetry was
successfully initialized at startup; hot-reloading telemetry-on is
out of scope per ADR-0023).
ADR-0023 status updated: Phase 1+2+3 Implemented. api.v2_enabled
remains explicitly deferred (router refactor needed; separate ADR).
Race detector clean on touched packages. Full BDD suite green.