### Godot version

4.0beta17

### System information

Windows 11, mono, (Forward+ and Mobile)

### Issue description

When using a WorldEnvironment with background Mode set to **Canvas**, the editor view now unexpectedly renders no clearing background (e.g., "Keep" render mode) while navigating the 3D scene in the editor:

https://user-images.githubusercontent.com/143504/217915941-94116069-4d28-45b5-bf0d-dfdd3fc46e26.mp4

Previous versions (4.0beta16 and earlier), would use a default clear color or sky when the Canvas BackgroundMode is selected while in the editor viewport.  This behaviour appears to have changed in beta17 through rc1.

In-game builds correctly show the canvas in all three versions.

Ideally, when Canvas is selected, the actual canvas content would be rendered as the background while previewing the 3D parts of the scene to better emulate runtime.   Alternatively, using a default sky or clear color would prevent the streaking that makes following the grid and in-viewport edit widgets more difficult to see and utilize

### Steps to reproduce

* Create a 3D Scene using a WorldEnvironment
* Place some 3D objects into the scene
* Set the Background Mode to Canvas
* (not sure if necessary) Configure CanvasLayer, e.g., with ParallaxLayer, Sprite2D to render as the background in-game

### Minimal reproduction project

[CanvasBG-Repro.zip](https://github.com/godotengine/godot/files/10700907/CanvasBG-Repro.zip)

}
		RENDER_TIMESTAMP("< Render Viewport " + itos(i));
		objects_drawn += vp->render_info.info[RS::VIEWPORT_RENDER_INFO_TYPE_VISIBLE][RS::VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME] + vp->render_info.info[RS::VIEWPORT_RENDER_INFO_TYPE_SHADOW][RS::VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME];
		vertices_drawn += vp->render_info.info[RS::VIEWPORT_RENDER_INFO_TYPE_VISIBLE][RS::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] + vp->render_info.info[RS::VIEWPORT_RENDER_INFO_TYPE_SHADOW][RS::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME];
		draw_calls_used += vp->render_info.info[RS::VIEWPORT_RENDER_INFO_TYPE_VISIBLE][RS::VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME] + vp->render_info.info[RS::VIEWPORT_RENDER_INFO_TYPE_SHADOW][RS::VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME];
	}
	RSG::scene->set_debug_draw_mode(RS::VIEWPORT_DEBUG_DRAW_DISABLED);
	total_objects_drawn = objects_drawn;
	total_vertices_drawn = vertices_drawn;
	total_draw_calls_used = draw_calls_used;
	RENDER_TIMESTAMP("< Render Viewports");
	
	RSG::rasterizer->prepare_for_blitting_render_targets();
	for (const KeyValue<int, Vector<BlitToScreen>> &E : blit_to_screen_list) {
		RSG::rasterizer->blit_render_targets_to_screen(E.key, E.value.ptr(), E.value.size());
	}
}
RID RendererViewport::viewport_allocate() {
	return viewport_owner.allocate_rid();
}
void RendererViewport::viewport_initialize(RID p_rid) {
	viewport_owner.initialize_rid(p_rid);
	Viewport *viewport = viewport_owner.get_or_null(p_rid);
	viewport->self = p_rid;
	viewport->render_target = RSG::texture_storage->render_target_create();
	viewport->shadow_atlas = RSG::light_storage->shadow_atlas_create();
	viewport->viewport_render_direct_to_screen = false;
	viewport->fsr_enabled = !RSG::rasterizer->is_low_end() && !viewport->disable_3d;
}
void RendererViewport::viewport_set_use_xr(RID p_viewport, bool p_use_xr) {