cache at channel rather than connection level; refactor; fix bug that prevented recreating dead queues