My suggested behavior would be for items in non-On Hold parent contexts to not show up when filtering Contexts by On Hold. Is there a downside to that that I'm not thinking of? In what circumstances would you want to see non-On Hold items when filtering by On Hold?
Fixes for the problem that involve changing OmniFocus are fine, except that they usually don't happen as quickly as anyone who has a real problem would like. That is why most of my suggestions center around finding a way to work with the tools we have (or can make ourselves with Applescript).