Use interruption more robustly in task graphs (#478)
Destroy external algorithm process on interrupt (#478)
Insert more interruptibility and error handling (#478)