### 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.
ERR_FAIL_COND(idle_callback_count >= MAX_IDLE_CALLBACKS);
	idle_callbacks[idle_callback_count++] = p_callback;
}
void SceneTree::get_argument_options(const StringName &p_function, int p_idx, List<String> *r_options) const {
	if (p_function == "change_scene_to_file") {
		Ref<DirAccess> dir_access = DirAccess::create(DirAccess::ACCESS_RESOURCES);
		List<String> directories;
		directories.push_back(dir_access->get_current_dir());
		while (!directories.is_empty()) {
			dir_access->change_dir(directories.back()->get());
			directories.pop_back();
			dir_access->list_dir_begin();
			String filename = dir_access->get_next();
			while (!filename.is_empty()) {
				if (filename == "." || filename == "..") {
					filename = dir_access->get_next();
					continue;
				}
				if (dir_access->dir_exists(filename)) {
					directories.push_back(dir_access->get_current_dir().path_join(filename));
				} else if (filename.ends_with(".tscn") || filename.ends_with(".scn")) {
					r_options->push_back("\"" + dir_access->get_current_dir().path_join(filename) + "\"");
				}
				filename = dir_access->get_next();
			}
		}
	}
}
void SceneTree::set_disable_node_threading(bool p_disable) {