### Godot version

v4.1.stable.official [970459615]

### System information

Godot v4.1.stable - Windows 10.0.22621 - Vulkan (Forward+) - dedicated NVIDIA GeForce GTX 1660 Ti (NVIDIA; 31.0.15.3598) - AMD Ryzen 7 3700X 8-Core Processor (16 Threads)

### Issue description

is_input_handled() is returning True, even though set_input_as_handled() has not been called.

Example:
`func _input_event(viewport, event, shape_idx):
	print(viewport.is_input_handled())`

Returns 'True', should return 'False'

### Steps to reproduce

1. Create a new project and add a Node2D as the root
2. Add a child Area2D node containing a CollisionShape2D and a Sprite2D
3. Either create the _input_event(viewport, event, shape_idx) or connect _on_input_event(viewport, event, shape_idx)
4. Print viewport.is_input_handled()
5. True is printed.

### Minimal reproduction project

[input_test.zip](https://github.com/godotengine/godot/files/12063748/input_test.zip)

Control *mouse_focus = gui.mouse_focus;
			
			
			
			if (gui.mouse_focus_mask.is_empty()) {
				gui.mouse_focus = nullptr;
				gui.forced_mouse_focus = false;
			}
			bool stopped = mouse_focus && mouse_focus->can_process() && _gui_call_input(mouse_focus, mb);
			if (stopped) {
				set_input_as_handled();
			}
		}
	}
	Ref<InputEventMouseMotion> mm = p_event;
	if (mm.is_valid()) {
		gui.key_event_accepted = false;
		Point2 mpos = mm->get_position();
		
		if (!gui.drag_attempted && gui.mouse_focus && (mm->get_button_mask().has_flag(MouseButtonMask::LEFT))) {
			gui.drag_accum += mm->get_relative();
			float len = gui.drag_accum.length();
			if (len > 10) {
				{ 
					CanvasItem *ci = gui.mouse_focus;
					while (ci) {
						Control *control = Object::cast_to<Control>(ci);
						if (control) {
							gui.dragging = true;
							gui.drag_data = control->get_drag_data(control->get_global_transform_with_canvas().affine_inverse().xform(mpos - gui.drag_accum));