The recently fixed delayed delivery bug (#1395) highlighted that there isn't a circuit breaker around the delayed delivery polling logic, and it can happen the "poller" (in the MoveMaturedDelayedMessagesAndSwallowExceptions method) stops polling with no errors.
Introducing a circuit breaker approach would be good, allowing exceptions to bubble up after a few failed attempts.