fix: add read timeout to metrics server to prevent connection stalls
the single-threaded metrics server on :3001 blocks on accept/read with
no timeout. if any client connects but doesn't complete the request
(e.g. during startup storm), the thread blocks forever and all
subsequent scrapes fail. sets SO_RCVTIMEO=5s on accepted connections.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>