### Godot version

v4.0.beta17.mono.official [c40020513]

### System information

Windows 11 22H2

### Issue description

If a focused subwindow is destroyed, DisplayServerWindows may still attempt to send mouse motion events to that window, because `last_focused_window` isn't updated until another window is focused.

```
ERROR: Condition "!windows.has(p_window)" is true. Returning: Point2i()
   at: window_get_position (platform/windows/display_server_windows.cpp:999)
```

### Steps to reproduce

Run the MRP, click some non-Godot application window to focus it, then click the "CLOSE" button in the secondary window. This destroys the window without re-focusing the main window, so hovering the mouse over the main window will produce the error message above.

### Minimal reproduction project

[native_windows_hover.zip](https://github.com/godotengine/godot/files/10573386/native_windows_hover.zip)

_THREAD_SAFE_METHOD_
	DisplayServer::WindowID window_id = _get_focused_window_or_popup();
	const WindowData &wd = windows[window_id];
	if (!wd.ime_active) {
		return Vector2i();
	}
	int cursor = ImmGetCompositionStringW(wd.im_himc, GCS_CURSORPOS, nullptr, 0);
	int32_t length = ImmGetCompositionStringW(wd.im_himc, GCS_COMPSTR, nullptr, 0);
	wchar_t *string = reinterpret_cast<wchar_t *>(memalloc(length));
	ImmGetCompositionStringW(wd.im_himc, GCS_COMPSTR, string, length);
	int32_t utf32_cursor = 0;
	for (int32_t i = 0; i < length / int32_t(sizeof(wchar_t)); i++) {
		if ((string[i] & 0xfffffc00) == 0xd800) {
			i++;
		}
		if (i < cursor) {
			utf32_cursor++;
		} else {
			break;
		}
	}
	memdelete(string);
	return Vector2i(utf32_cursor, 0);
}
String DisplayServerWindows::ime_get_text() const {