### Godot version

4.0, 4.0.1

### System information

Windows 10

### Issue description

If Steam is open on your computer, input from a controller can be incorrectly detected as an InputEventKey. Closing Steam corrects this error.

Controller inputs should never be detected as an InputEventKey: According to the current documentation an InputEventKey is [only for keyboard events.](https://docs.godotengine.org/en/4.0/classes/class_inputeventkey.html)

**Video demonstration:** https://youtu.be/9krmPx9vYoc
**Controller used:** Dualshock 4

### Steps to reproduce

1. Run minimal reproduction project (or a script with the following code):
```
func _input(event : InputEvent) -> void:
	if event is InputEventKey:
		print ("Keyboard Event Detected")
```
2. Test if "Keyboard Event Detected" prints on Controller input with Steam open vs. with Steam closed. 

### Minimal reproduction project

[InputEventKey Controller Test.zip](https://github.com/godotengine/godot/files/11106151/InputEventKey.Controller.Test.zip)
"If you are generating events in a script, you have to instantiate a new event instead of sending the same one more than once, unless the original one was sent on an earlier frame.\n"
				"You can call duplicate() on the event to get a new instance with identical values.");
	} else {
		frame_parsed_events.insert(p_event);
	}
#endif
	if (use_accumulated_input) {
		if (buffered_events.is_empty() || !buffered_events.back()->get()->accumulate(p_event)) {
			buffered_events.push_back(p_event);
		}
	} else if (use_input_buffering) {
		buffered_events.push_back(p_event);
	} else {
		_parse_input_event_impl(p_event, false);
	}
}
void Input::flush_buffered_events() {
	_THREAD_SAFE_METHOD_
	while (buffered_events.front()) {
		
		
		
		
		List<Ref<InputEvent>>::Element *E = buffered_events.front();
		Ref<InputEvent> e = E->get();
		buffered_events.pop_front();
		_parse_input_event_impl(e, false);
	}
}
bool Input::is_using_input_buffering() {