### Godot version

4.1 dev3

### System information

Windows 11, Forward+, Intel 13700k, 4070ti

### Issue description

In 4.0.x and in 4.1 dev2, if you overwrite the rotation of a bone in `_process` it has preferred over the currently running animation. In 4.1 dev3, the running animation takes precedence and overwrites any changes in `_process`. This happens both with a simple animation and with an animation tree, and happens in-editor and in-game.

### Steps to reproduce

1. Open the attached project.
2. Click on `AnimationPlayer` and pick an animation, e.g. `Armature|Standing`. Set it to looping if it's not already. (@RandomShaper's note: and play it).
3. Click on the `PointOfInterest` and move it along the X axis.
4. If you're on:
    - 4.0.x or 4.1-dev2: Notice the head rotating
    - 4.1-dev3: Notice that nothing happens

### Minimal reproduction project

[BoneRotationIssue-4.0.3.zip](https://github.com/godotengine/godot/files/11582187/BoneRotationIssue-4.0.3.zip)
[BoneRotationIssue-4.1-dev.zip](https://github.com/godotengine/godot/files/11582188/BoneRotationIssue-4.1-dev.zip)


Should include all licensing stuff for the model, but let me just add [the link](https://opengameart.org/content/human-model-ready-for-animation) for good measure.
int left_order = p_left->owner ? p_left->owner->data.process_thread_group_order : 0;
	int right_order = p_right->owner ? p_right->owner->data.process_thread_group_order : 0;
	if (left_order == right_order) {
		int left_threaded = p_left->owner != nullptr && p_left->owner->data.process_thread_group == Node::PROCESS_THREAD_GROUP_SUB_THREAD ? 0 : 1;
		int right_threaded = p_right->owner != nullptr && p_right->owner->data.process_thread_group == Node::PROCESS_THREAD_GROUP_SUB_THREAD ? 0 : 1;
		return left_threaded < right_threaded;
	} else {
		return left_order < right_order;
	}
}
void SceneTree::_remove_process_group(Node *p_node) {
	_THREAD_SAFE_METHOD_
	ProcessGroup *pg = (ProcessGroup *)p_node->data.process_group;
	ERR_FAIL_NULL(pg);
	ERR_FAIL_COND(pg->removed);
	pg->removed = true;
	pg->owner = nullptr;
	p_node->data.process_group = nullptr;
	process_groups_dirty = true;
}
void SceneTree::_add_process_group(Node *p_node) {
	_THREAD_SAFE_METHOD_
	ERR_FAIL_NULL(p_node);
	ProcessGroup *pg = memnew(ProcessGroup);
	pg->owner = p_node;
	p_node->data.process_group = pg;
	process_groups.push_back(pg);
	process_groups_dirty = true;
}
void SceneTree::_remove_node_from_process_group(Node *p_node, Node *p_owner) {