The condition under which an FSM is considered finished has changed a lot of times in the past since different people expect different things 🙂
I understand what you say though and it mostly makes sense, but because of the many times this behaviour has changed already, I will have to think twice before changing it once again, as so to avoid the unfortunate possibility of breaking existing setups. I will though add a check to see if AnyState has any transitions (your #1 condition), but I don’t see why you would want to have an AnyState without any transitions 🙂
Having said that, here is an action task (that will also be included in the next version) which force finish the current graph whatever it’s type is (BT, FSM, DT).
The action also has a parameter to finish the graph is Success or Failure since some Nested Node types are making use of this.