6844: Clean up websocket tests, fix possible deadlock, reduce unnecessary sleep().
* Use onevent=q.put_nowait, so "too many events" raises Queue.Full
instead of blocking the websocket thread.
* Simplify test strategy: get the events we expect (waiting <5s for
each), then make sure no more events arrive for >2s.
* Delete "no logs arrive from 1 day in the future" test:
indistinguishable from "no logs arrive from 1 hour in the future".
* Delete "use today's date, with no time, as a threshold" test:
indistinguishable from "can fetch logs 1 hour in the past"
* De-duplicate strftime(), datetime arithmetic, and "how to ask for
logs starting at time X" logic.
* Express timestamp thresholds in ISO8601. Existing tests continue to
use localtime. Two new tests use UTC.