I couldn't find the description of 'reset' in the provided link...am I missing it or is it the wrong one?
The running of a sequence node's tick does not have
to depend on any results of the previous tick. BT's can be structured in many different ways. As a class based example one could do something logically like this (I'm ignore putting state data on the blackboard...and I'm just typing this so beware):
public abstract class BTNode
abstract void reset();
abstract void terminate(int state);
abstract int update();
public int tick()
if (state != RUNNING) reset();
state = update();
if (state != RUNNING) terminate(state);
This way each 'tick' automatically handles the implementation choice such as you've mentioned...assuming I'm following you.