Yup, you approach sounds good. I think the default limit (if you don't supply) is 50,000 records but you can definitely limit it chunks smaller than that as well.
If I understand correctly you are worried that you could come to a situation when there is so much data is coming into that there is never a point where the results count is 0. In theory, yes this could happen, and you could cater for this situation with some code to protect against an endless loop. Something like, if the date of the first record is later than the time (UTC) you started the loop, quit. That being said, it is unlikely to see this happen in a real world situation.