Description
The SystemConsumers code for updating a MessageChooser is currently wrapped inside the refresher's exponential backoff code. This means that the chooser will not be updated if the refresher is backing off on consumers, even if unprocessedMessages has messages for streams in neededByChooser.
This bug is described in some detail here
It seems like the best fix is to move the update code outside of the call() block, and call it independently of refresh.maybeCall.