> FWIW: This approach also has issues, because the consumer can send conflicting messages. By setting `stop` to `YES` while simultaneously returning `YES`. When this occurs the consumer is asking us to abort and continue --two mutually exclusive requests. My approach to this issue is to prioritize the return value. Do you think this is the correct approach?

Hmm, good point, but I don't think ignoring one or the other is the right answer.

To make things as easy as possible for the API consumer, we should track the value of `stop` for the _next_ callback (as state in the `payload`), and immediately return -1 before invoking the user's block.