I've been burned in the past making non-continuation-based filtering mechanisms, and so I default to continuation-based patterns.

A continuation-based approach remains simple, works great for what we're doing now, and should continue to work great in the future even if customers want to do weird asynchronous things.