So you create a Task (by using TaskService.createTask)? In that case, there is no connection between the task and the process, so there is no way of letting the process "wait" unless you put an explicit wait-state after the process (e.g.. receive-task) and plug in some kind of mechanism that allows listening to adhoc-tasks to make the trigger the workflow again.
Why can't you model the UserTask in the process and, if it's not needed, let a gateway navigate around the task (so make flow to task conditional based on a variable set in the service-task)?