Can we have a max number of iterations on this? I just feel it is more defensive to try for a while, and then if it does not work out log the message and go on.  After all the worst thing that happens with leaving early is that some messages may not have been acked, which we more or less ignore anyways.