fan out build logs without blocking
more reliable dead connection reaping

gorilla websocket apparently returns nil even if writing timed out and
wrote 0 bytes.

so, check for pongs in a reasonable interval, and force reading so that
they show up.