Is there any reason not to use HistoryService method createHistoricProcessInstanceQuery to get a process that is active. As opposed to using runtimeService.
When a process instance is finished, it will be removed from the runtime tables. However, it will never be deleted from the historical tables. As such, queries agains the runtime table will be faster as the historical counterparts will keep growing.