Async chain database state change observer notifications, and avoid throwing exceptions by checking whether the wallet is open before processing the state change.  This fixes problems switching forks when your wallet is not open.