Subs: expired events have correct time.
Don't spam socket error messages.

Introduces a bunch of debugging shit too; trying to track down other ws
problems.
subs.js: fix a reconnection bug

Subscriptions would mistakenly report being closed due to a reversed
pair of connection state constants in the ws/sse switch, in isOpen().
This caused sockets to consider themselves open when they were, in fact,
closed.