### Godot version

v4.1.beta1.mono.official [828ec2c5d]

### System information

Godot v4.1.beta1.mono - Windows 10.0.22621 - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 4070 Ti (NVIDIA; 31.0.15.3598) - 13th Gen Intel(R) Core(TM) i5-13600K (20 Threads)

### Issue description

After the recent refactoring (https://github.com/godotengine/godot/pull/75901), Node process priority seems to be unimplemented. `ComparatorWithPriority` is no longer used anywhere in the engine code.

Nodes behave as if they all had the same priority, and running with `--single-threaded-scene` makes no difference.

### Steps to reproduce

Run the MRP, look at the order in which the nodes print their names.

In Godot 4.0.3: First, Default, Last
In Godot 4.1-beta1: Default, First, Last

### Minimal reproduction project

[ProcessPriorityBug.zip](https://github.com/godotengine/godot/files/11693028/ProcessPriorityBug.zip)

if (process_groups[i]->removed) {
			continue;
		}
		ProcessGroup *pg = process_groups[i];
		
		bool process_valid = false;
		if (p_physics) {
			if (!pg->physics_nodes.is_empty()) {
				process_valid = true;
			} else if (pg->owner != nullptr && pg->owner->data.process_thread_messages.has_flag(Node::FLAG_PROCESS_THREAD_MESSAGES_PHYSICS) && pg->call_queue.has_messages()) {
				process_valid = true;
			}
		} else {
			if (!pg->nodes.is_empty()) {
				process_valid = true;
			} else if (pg->owner != nullptr && pg->owner->data.process_thread_messages.has_flag(Node::FLAG_PROCESS_THREAD_MESSAGES) && pg->call_queue.has_messages()) {
				process_valid = true;
			}
		}
		if (process_valid) {
			pg->last_pass = process_last_pass; 
			process_count++;
		}
	}
	nodes_removed_on_group_call_lock--;
	if (nodes_removed_on_group_call_lock == 0) {
		nodes_removed_on_group_call.clear();
	}
}
bool SceneTree::ProcessGroupSort::operator()(const ProcessGroup *p_left, const ProcessGroup *p_right) const {