The approach you mention with KnowledgeSessionAware interface that would set the ksession was exactly what I was thinking about. I think you would only need to extend the registerWorkItemHandler(..) method in DefaultWorkItemManager (if you're not using persistence) and JPAWorkItemManager (if you're using persistence) to check if the handler implements this interface and if so, set the ksession (note that this code is part of the drools-core or drools-persistence-jpa module respectively).
If you could open a JIRA for this and maybe attach the code I need to add to set the session there, I'll make sure it gets included in the codebase.
Kris