### Godot version

4.0.dev(dc3175e4cdb4e54e1c6200b6c4d07646eea95284)

### System information

Any

### Issue description

EditorPlugins that depend on the resources that Node has will not be visible when SubInspector is focused.

https://user-images.githubusercontent.com/61938263/210553656-86669f57-e41f-427e-a650-30630c27d850.mp4

This is caused by two problems:

The first is caused by implicit editor deletion in Node3D. This is fixed by #70907.

The other is due to a change in inspector update timing, which is regression by #68498. Revert PR #70909 will fix this issue, but if not, we will need to update SubInspectorEditor in the correct way.

### Steps to reproduce

Select Path3D or CollisionPolygon3D and open a SubInspector such as Script.

### Minimal reproduction project

[plugintest.zip](https://github.com/godotengine/godot/files/10343962/plugintest.zip)

Vector2 mpos = mb->get_position();
		if (is_layout_rtl()) {
			mpos.x = get_size().x - mpos.x;
		}
		if (!selected && selectable) {
			selected = true;
			emit_signal(SNAME("selected"), property, -1);
			queue_redraw();
		}
		if (keying_rect.has_point(mpos)) {
			accept_event();
			emit_signal(SNAME("property_keyed"), property, use_keying_next());
			if (use_keying_next()) {
				if (property == "frame_coords" && (object->is_class("Sprite2D") || object->is_class("Sprite3D"))) {
					Vector2i new_coords = object->get(property);
					new_coords.x++;
					if (new_coords.x >= int64_t(object->get("hframes"))) {
						new_coords.x = 0;
						new_coords.y++;
					}
					if (new_coords.x < int64_t(object->get("hframes")) && new_coords.y < int64_t(object->get("vframes"))) {
						call_deferred(SNAME("emit_changed"), property, new_coords, "", false);
					}
				} else {
					if (int64_t(object->get(property)) + 1 < (int64_t(object->get("hframes")) * int64_t(object->get("vframes")))) {
						call_deferred(SNAME("emit_changed"), property, object->get(property).operator int64_t() + 1, "", false);
					}
				}
				call_deferred(SNAME("update_property"));
			}