The ServiceTaskHandler is actually executing the service synchronously. That means that the service will have executed before you'll have the chance to abort the process instance.
In general though, when using asynchronous work item handlers, you abort your process instance, the work item handler will be notified that the service call should be aborted. In the work item handler, you can then specify how to do this (as the abortWorkItem(..) method.
Kris