Yes, it's sounds a little bit awkward. You can also do something similar without extending anything and is using the onEntry/onExit extensions that allows you to execute a piece of code when the process is entering or leaving an activity.
But.... that makes me think and wonder, why do you need the workItemId?
If the session is alive, instead of completing the work item you should be completing the human task, and the human task server will be in charge of notifying the process to continue right?
Cheers