### Godot version

4.0-stable_mono_win64

### System information

Windows 11 22H2

### Issue description

> 
![Script](https://user-images.githubusercontent.com/43518523/224719220-9ab4a56c-2e9c-4c1b-bebe-d62eb23e372b.png)
![Bug](https://user-images.githubusercontent.com/43518523/224719256-34436394-6d89-4a2e-a588-f9f11ae06ea1.png)
Expected: The parameter type of OnChildEnteredTree (underlined) in the dialog is Node, not Object.

### Steps to reproduce

1. Write a public (signal listener) C# function with a Node parameter.
2. Build .NET project.
3. Try to connect some suitable signal (e.g. "child_entered_tree") to that function, and it won't appear in the Pick dialog if `Compatible Methods Only` is on.

### Minimal reproduction project

[SignalParamBug.zip](https://github.com/godotengine/godot/files/10958019/SignalParamBug.zip)

if (!valid) {
		r_error.error = Callable::CallError::CALL_ERROR_INVALID_METHOD;
		return Variant();
	}
	r_error.error = Callable::CallError::CALL_OK;
	StringName native_name;
	GDMonoCache::managed_callbacks.ScriptManagerBridge_GetScriptNativeName(this, &native_name);
	ERR_FAIL_COND_V(native_name == StringName(), Variant());
	Object *owner = ClassDB::instantiate(native_name);
	Ref<RefCounted> ref;
	RefCounted *r = Object::cast_to<RefCounted>(owner);
	if (r) {
		ref = Ref<RefCounted>(r);
	}
	CSharpInstance *instance = _create_instance(p_args, p_argcount, owner, r != nullptr, r_error);
	if (!instance) {
		if (ref.is_null()) {
			memdelete(owner); 
		}
		return Variant();
	}
	if (ref.is_valid()) {
		return ref;
	} else {
		return owner;
	}
}
ScriptInstance *CSharpScript::instance_create(Object *p_this) {