### Godot version

3.5.2 stable, 3.6 beta 1

### System information

Windows 11, all amd system, GLES3

### Issue description

Printed output says that the controller is in fact two controllers:
```
XInput Gamepad
Bluetooth LE XINPUT compatible input device
```
controllers of other makes only report as a single device (tested with nintendo pro controller, dual sense, steam deck)

Tested controllers:
- xbox elite controller
- xbox one s
- ~~haven't tested with xbox series controller, will report back when i have~~ Xbox series *(pink)* works fine

Effect:
- on a fresh new project it seems that the issue is only that the gamepad is reported as two
- in a project we are working on in godot 3.5.2, the double sent events propagate into the game (skips a button when going up for instance)

I am aware of https://github.com/godotengine/godot/issues/41684 and https://github.com/godotengine/godot/pull/71784 which mentions that a fix had been cherry picked, in my testing however the issue remains.

### Steps to reproduce

- create a simple ui scene with a couple of buttons
- add a script that prints the device name using: `print(Input.get_joy_name(event.device))` when event is InputEventJoypadButton in the _input function
- run the game and press a button on a bluetooth connected xbox gamepad

### Minimal reproduction project

N/A
if (timestamp > joy.ff_timestamp) {
			Vector2 strength = input->get_joy_vibration_strength(joy.id);
			float duration = input->get_joy_vibration_duration(joy.id);
			if (strength.x == 0 && strength.y == 0) {
				joypad_vibration_stop_xinput(i, timestamp);
			} else {
				joypad_vibration_start_xinput(i, strength.x, strength.y, duration, timestamp);
			}
		} else if (joy.vibrating && joy.ff_end_timestamp != 0) {
			uint64_t current_time = OS::get_singleton()->get_ticks_usec();
			if (current_time >= joy.ff_end_timestamp) {
				joypad_vibration_stop_xinput(i, current_time);
			}
		}
	}
	for (int i = 0; i < JOYPADS_MAX; i++) {
		dinput_gamepad *joy = &d_joypads[i];
		if (!joy->attached) {
			continue;
		}
		DIJOYSTATE2 js;
		hr = joy->di_joy->Poll();
		if (hr == DIERR_INPUTLOST || hr == DIERR_NOTACQUIRED) {
			IDirectInputDevice8_Acquire(joy->di_joy);
			joy->di_joy->Poll();
		}
		hr = joy->di_joy->GetDeviceState(sizeof(DIJOYSTATE2), &js);
		if (FAILED(hr)) {
			continue;
		}