Hmm, what does this mean for the lifecycle of the `client`? It looks like `ClientBase.run()` shuts down the shared `ClientConnectionManager` when it exits which seems wrong to me.

I /think/ that means we should consider that your first approach isn't currently supported — you can either process or get a `SitestreamController` back, but not both. That does seem like a flaw in the design though and it certainly is not documented at all. 

@xsl — any thoughts on how to fix this?