### Godot version

Godot 4 stable and Godot 3.x LTS

### System information

Fedora linux

### Issue description

If you use some custom logic inside _integrate_forces() to alter the state linear velocity and there is any reference to linear_velocity in physics process, the result in godot 3.5 is that it moves just a little bit, while in godot 4 is totally still.

### Steps to reproduce

For the example i created a simple scene in which i apply a force on the linear velocity in  _integrate_forces()  and added a line that add zero to it in physics process. You will not see any move, but it will work fine if you comment the line adding zero.


### Minimal reproduction project

[PhysicsBugReproduction.zip](https://github.com/godotengine/godot/files/12139772/PhysicsBugReproduction.zip)

if (on_) {
		return;
	}
	// 
	real_t length = MAX(_snap_length, margin);
	PhysicsServer2D::MotionParameters parameters(get_global_transform(), -up_direction * length, margin);
	parameters.recovery_as_collision = true; 
	parameters.collide_separation_ray = true;
	PhysicsServer2D::MotionResult result;
	if (move_and_collide(parameters, result, true, false)) {
		if ((result.get_angle(up_direction) <= _max_angle + FLOOR_ANGLE_THRESHOLD) ||
				(p_wall_as_ && result.get_angle(-up_direction) > _max_angle + FLOOR_ANGLE_THRESHOLD)) {
			on_ = true;
			_normal = result.collision_normal;
			_set_platform_data(result);
			if (_stop_on_slope) {
				// 
				// 
				if (result.travel.length() > margin) {
					result.travel = up_direction * up_direction.dot(result.travel);
				} else {
					result.travel = Vector2();
				}
			}
			parameters.from.columns[2] += result.travel;
			set_global_transform(parameters.from);
		}
	}
}
void CharacterBody2D::_snap_on_(bool p_was_on_, bool p_vel_dir_facing_up, bool p_wall_as_) {