With the two races fixed, internal/handlers still hit the 30s
-timeout in the Docker build. Its time is real work, not clock
waits: each test starts its own server and in-memory database, and
each new session writes its welcome lines to the database one row at
a time, which the race detector slows down. The only clock waits are
the one-second long poll and a 200ms pause.
Measured in docker build --no-cache .: internal/handlers took 21-30s
under -race, and over 30s in the review builds that timed out.
Both go test runs in the test target now use -timeout 120s. The
retry stays (#101).
Model: opus-5-5