### 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.

return blend_input(cur_current_index, 0, true, p_is_external_seeking, 1.0, FILTER_IGNORE, true, p_test_only);
	}
	if (switched) {
		cur_prev_xfading = xfade_time;
		cur_time = 0;
	}
	if (cur_current_index < 0 || cur_current_index >= get_input_count() || cur_prev_index >= get_input_count()) {
		return 0;
	}
	double rem = 0.0;
	double abs_time = Math::abs(p_time);
	if (sync) {
		for (int i = 0; i < get_input_count(); i++) {
			if (i != cur_current_index && i != cur_prev_index) {
				blend_input(i, p_time, p_seek, p_is_external_seeking, 0, FILTER_IGNORE, true, p_test_only);
			}
		}
	}
	if (cur_prev_index < 0) { 
		rem = blend_input(cur_current_index, p_time, p_seek, p_is_external_seeking, 1.0, FILTER_IGNORE, true, p_test_only);
		if (p_seek) {
			cur_time = abs_time;
		} else {
			cur_time += abs_time;
		}
		if (input_data[cur_current_index].auto_advance && rem <= xfade_time) {
			set_parameter(transition_request, get_input_name((cur_current_index + 1) % get_input_count()));
		}
	} else { 
		real_t blend = 0.0;