broker: ensure disconnect on failing block

When Broker#connect is passed a block and that block raises an exception - the broker does not disconnect.