DoN's 3D-Pathfinding / Flying-AI system (with full source!)

Behavior Trees will automatically abort a task for you subject to the following conditions:-

  1. A higher priority task (i.e to the left) has evaluated its decorator condition to true (so it’s ready to run)
  2. This higher priority task has explicitly set the “Observer Aborts” field in the detail panel to an appropriate value (typically “Aborts Both”). Use the color-coding provided in the details panel to figure out which nodes will be aborted when the node you’ve currently selected is ready to run.

For what you’re doing here behavior trees look like a good fit, though it’s also a good idea to constantly reevaluate whether BTs are the right solution for a particular AI problem or if you’d be more productive in moving to a more traditional setup (easier to debug IMO). Over time I’ve found myself using a more “hybrid” solution for AI logic.