### Godot version

4.1.3

### System information

Linux

### Issue description

I'm trying to make an editor plugin on Rust:

```rust
#[derive(GodotClass)]
#[class(tool, editor_plugin, init, base=EditorPlugin)]
pub struct MyEditorPluginBase {}
```

But due to some limitations, I still have to use GDScript for some specific things.

So I tried to make a subclass of this Rust class:

```gdscript
@tool
class_name MyEditorPlugin
extends MyEditorPluginBase
```

This would work if `MyEditorPluginBase` was a GDScript class, but since it's a GDExtension class in my case, it doesn't work:

> Unable to load addon script from path: 'res://addons/my_addon/my_editor_plugin.gd' Base type is not EditorPlugin.

But it obviously **IS** EditorPlugin!

![godot-editorplugin-docs](https://github.com/godotengine/godot/assets/3236464/4665deeb-30f0-45cd-bfff-56101b9d4875)

![godot-editorplugin](https://github.com/godotengine/godot/assets/3236464/b1b6ecb4-de22-4abd-91a3-e180691f67ee)

If I understand correctly, this behavior is caused by this function, which checks some mysterious "instance base type" instead of real inheritance:

https://github.com/godotengine/godot/blob/fa4a65387ea41506ecc519fc61a06da110dce51c/editor/editor_node.cpp#L3456-L3458

https://github.com/godotengine/godot/blob/fa4a65387ea41506ecc519fc61a06da110dce51c/modules/gdscript/gdscript.cpp#L260-L263

Since the [documentation](https://docs.godotengine.org/en/stable/tutorials/plugins/editor/making_plugins.html#the-script-file) doesn't say that the script must be a **direct** subclass of EditorPlugin (and an indirect subclass works fine in GDScript), I interpret this behavior as a Godot bug.

### Steps to reproduce

See above

### Minimal reproduction project

[gdext_editor_plugin_test.zip](https://github.com/godotengine/godot/files/13451014/gdext_editor_plugin_test.zip)
OS::get_singleton()->print("                                    <path> should be absolute or relative to the project directory, and include the filename for the binary (e.g. 'builds/game.exe').\n");
	OS::get_singleton()->print("                                    The target directory must exist.\n");
	OS::get_singleton()->print("  --export-debug <preset> <path>    Export the project in debug mode using the given preset and output path. See --export-release description for other considerations.\n");
	OS::get_singleton()->print("  --export-pack <preset> <path>     Export the project data only using the given preset and output path. The <path> extension determines whether it will be in PCK or ZIP format.\n");
#ifndef DISABLE_DEPRECATED
	OS::get_singleton()->print("  --convert-3to4 [<max_file_kb>] [<max_line_size>]\n");
	OS::get_singleton()->print("                                    Converts project from Godot 3.x to Godot 4.x.\n");
	OS::get_singleton()->print("  --validate-conversion-3to4 [<max_file_kb>] [<max_line_size>]\n");
	OS::get_singleton()->print("                                    Shows what elements will be renamed when converting project from Godot 3.x to Godot 4.x.\n");
#endif 
	OS::get_singleton()->print("  --doctool [<path>]                Dump the engine API reference to the given <path> (defaults to current dir) in XML format, merging if existing files are found.\n");
	OS::get_singleton()->print("  --no-docbase                      Disallow dumping the base types (used with --doctool).\n");
#ifdef MODULE_GDSCRIPT_ENABLED
	OS::get_singleton()->print("  --gdscript-docs <path>            Rather than dumping the engine API, generate API reference from the inline documentation in the GDScript files found in <path> (used with --doctool).\n");
#endif
	OS::get_singleton()->print("  --build-solutions                 Build the scripting solutions (e.g. for C# projects). Implies --editor and requires a valid project to edit.\n");
	OS::get_singleton()->print("  --dump-gdextension-interface      Generate GDExtension header file 'gdextension_interface.h' in the current folder. This file is the base file required to implement a GDExtension.\n");
	OS::get_singleton()->print("  --dump-extension-api              Generate JSON dump of the Godot API for GDExtension bindings named 'extension_api.json' in the current folder.\n");
	OS::get_singleton()->print("  --dump-extension-api-with-docs    Generate JSON dump of the Godot API like the previous option, but including documentation.\n");
	OS::get_singleton()->print("  --validate-extension-api <path>   Validate an extension API file dumped (with one of the two previous options) from a previous version of the engine to ensure API compatibility. If incompatibilities or errors are detected, the return code will be non zero.\n");
	OS::get_singleton()->print("  --benchmark                       Benchmark the run time and print it to console.\n");
	OS::get_singleton()->print("  --benchmark-file <path>           Benchmark the run time and save it to a given file in JSON format. The path should be absolute.\n");
#ifdef TESTS_ENABLED
	OS::get_singleton()->print("  --test [--help]                   Run unit tests. Use --test --help for more information.\n");
#endif
#endif
	OS::get_singleton()->print("\n");
}
#ifdef TESTS_ENABLED
Error Main::test_setup() {