I'm not sure if this will help much, but I've also encountered the same runtime error when executing a motion batch with set cartesian blending and a .breakWhen() parameter.
Basically, I wanted the robot to cancel the motion batch and go home when it encountered some force, but when the robot tried to break the motion, it would throw that error and freeze, similar to your problem. The way that I eventually got around this was surrounding the motion in a try/catch block:
Code
try {
TorqueGun.move(crossover.setMode(softMove).breakWhen(cancelMove));
} catch (Exception e) {
getLogger().error("collision while switching sides, moving home.");
}
I don't profess to be a computer scientist, so it might bear some looking into how java handles the try/catch, but using that should help you avoid the sudden stop and error throwing.