When I delete a process instance via RuntimeService.deleteProcessInstance, I can pass a flag (externallyTerminated) that controls the state of the deleted instance. (STATE_EXTERNALLY_TERMINATED/STATE_INTERNALLY_TERMINATED)
When I cancel a process instance via ProcessInstanceModificationBuilder.cancelActivityInstance, I can not pass this flag. The underlying logic, however, is identical.
It would be nice to have this also for the cancelation of processes.