You should be able to "Cancel" a task without removing the predecessors or needing them to be completed. It's not only cumbersome when trying to batch cancel, it also seems illogical because if you need to make them active again, you don't have the context that was initially surrounding them.