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

ERR_FAIL_COND(!nodes.has(p_output_node));
	ERR_FAIL_COND(!nodes.has(p_input_node));
	ERR_FAIL_COND(p_output_node == SceneStringNames::get_singleton()->output);
	ERR_FAIL_COND(p_input_node == p_output_node);
	Ref<AnimationNode> input = nodes[p_input_node].node;
	ERR_FAIL_INDEX(p_input_index, nodes[p_input_node].connections.size());
	for (KeyValue<StringName, Node> &E : nodes) {
		for (int i = 0; i < E.value.connections.size(); i++) {
			StringName output = E.value.connections[i];
			ERR_FAIL_COND(output == p_output_node);
		}
	}
	nodes[p_input_node].connections.write[p_input_index] = p_output_node;
	emit_changed();
}
void AnimationNodeBlendTree::disconnect_node(const StringName &p_node, int p_input_index) {
	ERR_FAIL_COND(!nodes.has(p_node));
	Ref<AnimationNode> input = nodes[p_node].node;
	ERR_FAIL_INDEX(p_input_index, nodes[p_node].connections.size());
	nodes[p_node].connections.write[p_input_index] = StringName();
}
AnimationNodeBlendTree::ConnectionError AnimationNodeBlendTree::can_connect_node(const StringName &p_input_node, int p_input_index, const StringName &p_output_node) const {