kill -9 `grep jbpm`
Seriously, it does not sound like a jBPM problem at all...
Nevertheless, you should not have a processinstance running that long and using your own threads. Use jBPM Async functionality for long running actions. But then, if that specific code runs to long, you have the same problem. Unless you use e.g. semaphores (make your actions monitor something continously or some build in some listeners and stop if that situation arises). Again, nothing jBPM specific here