### Godot version

v4.1.1.stable.official [bd6af8e0e]

### System information

Godot v4.1.1.stable - Windows 10.0.19045 - Vulkan (Forward+) - dedicated NVIDIA GeForce GTX 1060 6GB (NVIDIA; 31.0.15.3179) - Intel(R) Core(TM) i5-8500 CPU @ 3.00GHz (6 Threads)

### Issue description

When connecting the `animation_started` signal from an animation tree, the connected method is always called twice.
This only occurs with the `animation_started` signal, the `animation_finished` signal is only emitted once.

This unfortunately makes relying on the signal impossible.

### Steps to reproduce

(See minimal production project)
- Use `animation_started.connect()`
- Print something out in the connected method (the example project prints the `anim_name` parameter)
- method is called twice -> two prints in the console

### Minimal reproduction project

[anim_tree_signal_bug.zip](https://github.com/godotengine/godot/files/12229864/anim_tree_signal_bug.zip)

The animation tree travels to the 'move' animation when `ui_accept` is pressed (see `anim_tree.gd`) and has print statements inside the methods connected to both the `animation_started` and `animation_finished` signal.

OneShotRequest cur_request = static_cast<OneShotRequest>((int)get_parameter(request));
	bool cur_active = get_parameter(active);
	bool cur_internal_active = get_parameter(internal_active);
	double cur_time = get_parameter(time);
	double cur_remaining = get_parameter(remaining);
	double cur_fade_out_remaining = get_parameter(fade_out_remaining);
	double cur_time_to_restart = get_parameter(time_to_restart);
	set_parameter(request, ONE_SHOT_REQUEST_NONE);
	bool is_shooting = true;
	bool clear_remaining_fade = false;
	bool is_fading_out = cur_active == true && cur_internal_active == false;
	if (p_time == 0 && p_seek && !p_is_external_seeking) {
		clear_remaining_fade = true; 
	}
	bool do_start = cur_request == ONE_SHOT_REQUEST_FIRE;
	if (cur_request == ONE_SHOT_REQUEST_ABORT) {
		set_parameter(internal_active, false);
		set_parameter(active, false);
		set_parameter(time_to_restart, -1);
		is_shooting = false;
	} else if (cur_request == ONE_SHOT_REQUEST_FADE_OUT && !is_fading_out) { 
		if (cur_active) {
			
			is_fading_out = true;
			cur_fade_out_remaining = fade_out;
		} else {
			
			is_shooting = false;
		}
		set_parameter(internal_active, false);