I've decided that rearranging the node hierarchy is not an effective way of achieving the result I want.
I'd like the body to consistently follow the center of the EnemyContainer node.
When I use "body.set_deferred("global_position", EnemyContainer.global_position)" the body teleports to the initial global_position of the EnemyContainer, but then it stays there, instead of following the EnemyContainer node which rises above the player (its parent)
It works if I reparent the body to the EnemyContainer, but I get the concerning error: E 0:00:02:0592 Player.gd:86 @ _on_bottom_checker_body_entered(): Can't change this state while flushing queries. Use call_deferred() or set_deferred() to change monitoring state instead.
<C++ Error> Condition "body->get_space() && flushing_queries" is true.
<C++ Source> servers/physics_2d/godot_physics_server_2d.cpp:654 @ body_set_shape_disabled()
<Stack Trace> Player.gd:86 @ _on_bottom_checker_body_entered()
I just want the body node to follow the position of the EnemyContainer node's center, so I don't have to "unparent" the body when it is thrown and separated from the EnemyContainer node and its position (a later function I intend to implement).