### Godot version

4.0 beta 12 mono

### System information

MacOS 13.1, Apple M1 Pro

### Issue description

When `text_editor/external/use_external_editor` is set to true but `text_editor/external/exec_path` is not set and I create a new script and attach it to a node Godot freezes and i need to force quit the application.
Also after a restart when double clicking on the script the application freezes but I can quit normally

### Steps to reproduce

- Set Use External Editor to true in Editor Settings and leave Exec Path empty
- Create a new project with Moblie Renderer and Git Versioning in Godot
- Create a 3D Scene
- Create a gd script in the FileSystem inspector or directly attach the script to a node

### Minimal reproduction project

[New Game Project.zip](https://github.com/godotengine/godot/files/10420510/New.Game.Project.zip)

menu_hb->add_spacer();
	site_search = memnew(Button);
	site_search->set_flat(true);
	site_search->set_text(TTR("Online Docs"));
	site_search->connect("pressed", callable_mp(this, &ScriptEditor::_menu_option).bind(SEARCH_WEBSITE));
	menu_hb->add_child(site_search);
	site_search->set_tooltip_text(TTR("Open Godot online documentation."));
	help_search = memnew(Button);
	help_search->set_flat(true);
	help_search->set_text(TTR("Search Help"));
	help_search->connect("pressed", callable_mp(this, &ScriptEditor::_menu_option).bind(SEARCH_HELP));
	menu_hb->add_child(help_search);
	help_search->set_tooltip_text(TTR("Search the reference documentation."));
	menu_hb->add_child(memnew(VSeparator));
	script_back = memnew(Button);
	script_back->set_flat(true);
	script_back->connect("pressed", callable_mp(this, &ScriptEditor::_history_back));
	menu_hb->add_child(script_back);
	script_back->set_disabled(true);
	script_back->set_tooltip_text(TTR("Go to previous edited document."));
	script_forward = memnew(Button);
	script_forward->set_flat(true);
	script_forward->connect("pressed", callable_mp(this, &ScriptEditor::_history_forward));
	menu_hb->add_child(script_forward);
	script_forward->set_disabled(true);
	script_forward->set_tooltip_text(TTR("Go to next edited document."));
	tab_container->connect("tab_changed", callable_mp(this, &ScriptEditor::_tab_changed));
	erase_tab_confirm = memnew(ConfirmationDialog);
	erase_tab_confirm->set_ok_button_text(TTR("Save"));
	erase_tab_confirm->add_button(TTR("Discard"), DisplayServer::get_singleton()->get_swap_cancel_ok(), "discard");