Sorry for taking so long to answer. Even with your very complete answer, for which i thank you again, i still didn't find a solution. So, i will give more details on the structure of the nodes and explain what is being done in a broad way. The image below shows this structure on editing mode, i mean, before the game runs.

The popup_layer is there for the interface scenes, i remove and add depending on the context. For example, the main_menu is a scene made of a Node2d with Controls as children and is added at the beggining. I follow the same idea for hud_layer but this receives only the same scene which contain all hud elements.
On the _ready() of the controller, i instantiate the interface scenes, set the camera to the menu_camera, add this main_menu and other interface scenes to the popup_layer, connect the signals of this scenes, set timers and instantiate and set the player scene. One camera is used for when the game is being played and it have some specific behaviour as shake and follow player. The other one is just for the interface. My scene tree at this point, after the game runs, is that:

When the player press the Play button, i remove the main_menu from the popup_layer, add the pause menu scene to it, change the camera to the main_camera, add a simple tilemap, add the HUD scene to the hud_layer and do some other things that i wont detail now. The point is that my scene tree now is that:

At the end of the level, when the player collect a number of items, i call my stop_game() that removes a lot of things on the scene, then removes the pause scene menu from the popup_layer and the HUD from hud_layer, change the camera again and add the end_level menu to the popup_layer. At the end of this process, i a get the error mentioned above. My scene tree now is that:

What can i be doing wrong?