I’d like to suggest a “Bool Changed” node that checks if the input bool has changed its value since the last time the node was executed, and if so it will output an exec tick (once, until the next change).
It could look similar to a branch node, with different exec paths depending on if it changed to true or false, possibly a third for “either” (or you could just use both pins).
This would greatly simplify a lot of work, improve readability, and potentially save on a lot of unnecessary ticking.