I don't think there are any way to manipulate nodes after a path have been found, however not 100% sure. If that is the case there are no "easy" solution to what you want to do. At least not easy enough for me to make an example
However here are some ideas that you can work with trying to find a solution.
Using several path findings:
Since you can get the nodes from path finding, what you can do is to first find a path to your final destination. Once that is done, you have all the nodes that C2 uses. You then go through each of these, beginning with the one closes to your object, to avoid having to path find to much. So using your conditions to decide whether a node is correct or need to be changed. Using the following rules:
1. (Node is correct) Store node in a Path finding list/array, Check next node.
2. (Node need to be changed) Make a dummy object to path find from the last added node in the path finding list to the new node location and then repeat the process creating the final path finding list.
You just have to be sure that the list you create is of course linked to the correct object.
Predefine path
Using a somewhat similar method as above. Using a path finding list.
But if you know the conditions that you want use you can add the node locations to the list and then path find through it as above.
Cost
This depend on what you are trying to do. But the path finding allows you to use cost which you can use to control what path it prefers. So maybe you can use some blocking sprites with high cost and place them where you don't want the object to move. But it of course highly depending on what you are trying to do.
Anyway just some ideas of how you can do it.