Recently did my own searching, and also came across https://github.com/almc/behavior_trees as an implementation from this paper: http://www.csc.kth.se/~almc/pdf/unifi...
I actually found a stable behavior tree implementation here: https://github.com/miccol/ROS-Behavio... . I first started first using the almc implementation, but the miccol one has the concept of "halt" that allows an action to be preempted.