### Godot version

4.2 beta 4

### System information

Godot v4.2.beta4 - Windows 10.0.22621 - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 4070 Ti (NVIDIA; 31.0.15.4584) - AMD Ryzen 9 5900X 12-Core Processor (24 Threads)

### Issue description

I am not sure what is going on to be honest, I tried to figure out for several hours hoping that I could open a more clear issue. But I managed to figure out it is a bug by running the same project in two different version of GoDot.

In the project I attached, make sure you do not have Steam open, run the project, click create a lobby then click start game.

![image](https://github.com/godotengine/godot/assets/73620153/028c81fd-60d9-43f7-bd91-8a677cd88e73)

The same project will have two different behaviors: 

* 4.2beta3: 
It will load the scene in around 2 seconds, then holding "Tab" will show the scoreboard, pressing console will open the console, pressing it again will close it, game is clearly active no matter the state of UI, or the input, you can orbit the camera around the player.

* 4.2beta4: It will simply freeze black no matter how long you wait, the multiplayer lobby UI is hidden and screen will stay black until you either hold "Tab" to open the scoreboard, or press "`" to open the console. If you press any of those inputs, the game scene will appear, but the it will render just as long as you hold 'Tab' or as long as the console should be active (between two console presses). The game seems to be running behind, that is why I used "render" here.

This behavior is very strange, there are no errors or warning displayed in output, and I think it should really be looked into. I feel that something was broken badly in this beta 4.

### Steps to reproduce

In the project I attached, make sure you do not have Steam open, run the project, click create a lobby then click start game.

![image](https://github.com/godotengine/godot/assets/73620153/028c81fd-60d9-43f7-bd91-8a677cd88e73)

The same project will have two different behaviors: 

* 4.2beta3 (CORRECT BEHAVIOR): 
It will load the scene in around 2 seconds, then holding "Tab" will show the scoreboard, pressing console will open the console, pressing it again will close it, game is clearly active no matter the state of UI, or the input, you can orbit the camera around the player.

* 4.2beta4 (WRONG BEHAVIOR): 
It will simply freeze black no matter how long you wait, the multiplayer lobby UI is hidden and screen will stay black until you either hold "Tab" to open the scoreboard, or press "`" to open the console. If you press any of those inputs, the game scene will appear, but it will render just as long as you hold 'Tab' or as long as the console should be active (between two console presses). besides this, it stays frozen.

### Minimal reproduction project

[Project.zip](https://github.com/godotengine/godot/files/13223077/Project.zip)


_Production edit: Confirmed to be a regression from https://github.com/godotengine/godot/pull/83649_
virtual Vector<Ref<Image>> texture_3d_get(RID p_texture) const override { return Vector<Ref<Image>>(); };
	virtual void texture_replace(RID p_texture, RID p_by_texture) override;
	virtual void texture_set_size_override(RID p_texture, int p_width, int p_height) override;
	virtual void texture_set_path(RID p_texture, const String &p_path) override;
	virtual String texture_get_path(RID p_texture) const override;
	virtual void texture_set_detect_3d_callback(RID p_texture, RS::TextureDetectCallback p_callback, void *p_userdata) override;
	void texture_set_detect_srgb_callback(RID p_texture, RS::TextureDetectCallback p_callback, void *p_userdata);
	virtual void texture_set_detect_normal_callback(RID p_texture, RS::TextureDetectCallback p_callback, void *p_userdata) override;
	virtual void texture_set_detect_roughness_callback(RID p_texture, RS::TextureDetectRoughnessCallback p_callback, void *p_userdata) override;
	virtual void texture_debug_usage(List<RS::TextureInfo> *r_info) override;
	virtual void texture_set_force_redraw_if_visible(RID p_texture, bool p_enable) override;
	virtual Size2 texture_size_with_proxy(RID p_proxy) override;
	virtual void texture_rd_initialize(RID p_texture, const RID &p_rd_texture, const RS::TextureLayeredType p_layer_type = RS::TEXTURE_LAYERED_2D_ARRAY) override;
	virtual RID texture_get_rd_texture(RID p_texture, bool p_srgb = false) const override;
	virtual uint64_t texture_get_native_handle(RID p_texture, bool p_srgb = false) const override;
	void texture_set_data(RID p_texture, const Ref<Image> &p_image, int p_layer = 0);
	virtual Image::Format texture_get_format(RID p_texture) const override;
	uint32_t texture_get_texid(RID p_texture) const;
	uint32_t texture_get_width(RID p_texture) const;
	uint32_t texture_get_height(RID p_texture) const;
	uint32_t texture_get_depth(RID p_texture) const;
	void texture_bind(RID p_texture, uint32_t p_texture_no);
	
	void update_texture_atlas();
	GLuint texture_atlas_get_texture() const;
	_FORCE_INLINE_ Rect2 texture_atlas_get_texture_rect(RID p_texture) {