allow callbacks to trigger the finishedMsg and end

Callbacks are super handy but they don't have the ability to end the infinity.  That's a difficult limitation.

This shows how I implemented it in my app.  It's maybe not so pretty but it works great!  If you have a better idea on how to do it I'm happy to rework the patch.