You dare insult the use of logic gates...
What you want to do can be done with some overrideable functions such as, set_process(false), set_input(false)
and the same can be achieved using groups
add_to_group("moveable")
func _physics_process(delta: float) -> void:
get_tree().call_group("moveable", delta)
func move(delta: float):
var collider = move_and_collide(speed * delta)
if collider:
remove_from_group("moveable")
Or even better with signals. To be honest you're over complicating what can easily be achieved with a well placed if-else-then
statement.
The best possible workflow for your intentions are State Machines
so also have a look at that