### Godot version

v4.1.rc2.official [46424488e]

### System information

Godot v4.1.rc2 - Windows 10.0.19045 - Vulkan (Compatibility) - GeForce GTX 550 Ti () - Intel(R) Core(TM) i3-2100 CPU @ 3.10GHz (4 Threads)

### Issue description

In the Project Manager.
With a project that has a comma in the name, for example: `one, two`

When the open project folder button is pressed, then two issues can occur:
- If there is no other project with the name before the comma: `one`
Then the default Godot project folder opens: `C:/Users/username/Documents`
- If there is another project with the name: `one`
Then the `one` project folder opens.
(the project `one` doesn't need to be listed in the Project Manager, 
it just has to exist in the same folder as the `one, two` folder)

Expected:
The `one, two` project folder should open.

Notes:
The open project folder button works when there isn't a comma in the project name.
For example: `three`, or `three four`

### Steps to reproduce

- Download the attached zip file: [two projects.zip](https://github.com/godotengine/godot/files/11929652/two.projects.zip)
- Extract the zip file into an empty folder.
- Open the Godot Project Manager.
- Scan the extracted folder.
There should now be two projects with the names: `one` and `one, two`.
- Click on the `one, two` projects, open project button, to the left of the project path.

### Observed

The project `one` folder opens.

### Expected

The project `one, two` folder should have opened.

### Continued reproduction steps
- Now remove the `one` folder from the extracted folder.
It doesn't matter that it's still listed in the Project manager.
- Click on the `one, two` projects, open project button.

### Observed 2

Now the default Godot project folder opens: `C:/Users/username/Documents`

### Expected 2

Same as above, the `one, two` project folder should have opened.

### Minimal reproduction project

[two projects.zip](https://github.com/godotengine/godot/files/11929652/two.projects.zip)

if (fnd != INVALID_HANDLE_VALUE) {
			String fname = String::utf16((const char16_t *)d.cFileName);
			if (!fname.is_empty()) {
				fpath = fpath.get_base_dir().path_join(fname);
			}
			FindClose(fnd);
		}
		return fpath;
	}
	return String();
}
String OS_Windows::get_executable_path() const {
	WCHAR bufname[4096];
	GetModuleFileNameW(nullptr, bufname, 4096);
	String s = String::utf16((const char16_t *)bufname).replace("\\", "/");
	return s;
}
bool OS_Windows::has_environment(const String &p_var) const {
#ifdef MINGW_ENABLED
	return _wgetenv((LPCWSTR)(p_var.utf16().get_data())) != nullptr;
#else
	WCHAR *env;
	size_t len;
	_wdupenv_s(&env, &len, (LPCWSTR)(p_var.utf16().get_data()));
	const bool has_env = env != nullptr;
	free(env);
	return has_env;
#endif
}
String OS_Windows::get_environment(const String &p_var) const {