Is there way to skip a behavior tree task after it is called once?

You can simply set BB value to value of current task node after it is executed. And check for < when starting executing task nodes. So, at first execution task node will execute fully because BB value < self node value and then set BB value to self node value. At second execution BB value < self node value is false, so task node simply return Succeed