abortProcessInstance on ksession is the way to go, which will abort the process and remove it from runtime engine data base tables. If it does not work, make sure that session that you use is persistent session so it is capable of finding the right process instance. But it will not remove the history log. An option for this is that you could create dedicated session that will be used for deleting process instances and register a custom process event listener on it that will remove data from log db in afterProcessCompleted method.
HTH