Can you explain a little bit more what are you trying to solve doing:
"I faced this situation because I tried to update the CommandBasedWSHumanTaskHandler to not depend on a KnowledgeSession and only use the WorkItemManager received as parameter, but then some problems started to happen."
If you don't use the ksession inside the CommandBasedWSHumanTaskHandler the HumanTaskHandler will not be able to notify the session when a task is being completed, so your process will not be signaled to continue to the next node.
My first goal is to be able to define the CommandBasedWSHumanTaskHandler using drools.session.conf. This will allow me to have different implementations for dev, prod environments. Today, this is the only handler that needs to be hard coded because it receive a session as parameter on his constructor.
Having a look in the CommandBasedWSHumanTaskHandler code the session is used only to get the WorkingItemManager, for this reason I thought that I could simply use the WorkingItemManager received as parameter on executeWorkItem or abortWorkItem.
I hope to make it more clear now