Sorry for the late reply, it looks like your question slipped through the cracks. The behavior you describe matches the implementation of GenericFileConsumer in Camel. If you want to see the grizzly details, check out the isMatched() method on line 454. The check for the file filter comes before the check for isDone.
Yes, I see that it only checks for the done file if the file matches the filter. Oh well, I can get it to work the way I want with a few changes to my code. Thanks for the help.