The answer is because you where interacting with Human Task API but not with process runtime API. Strange as it sounds, the relation between HT server and session is loosly-coupled. When you complete a task the HT server informs this event to all the registered listeners. If you didn't restore the ksession, there is no listener there.
Best Regards,