Spent most of the past day moving the assistant into a monad of its own that encapsulates all the communications channels for its threads. This involved modifiying nearly every line of code in the whole assistant.
Typical change:
[[!format haskell """ handleConnection threadname st dstatus scanremotes pushnotifier = do reconnectRemotes threadname st dstatus scanremotes (Just pushnotifier) =<< networkRemotes st
handleConnection = reconnectRemotes True =<< networkRemotes """]]
So, it's getting more readable..