### Godot version

Godot 4.0.2

### System information

Windows 10, NVIDIA GeForce 1060 GTX 3GB, Vulkan

### Issue description

Rigidbody collision against CharacterBody3D doesn't always trigger on_body_entered signal.
This happens when both objects are moving in the same direction

### Steps to reproduce

Play the test scene.
Press the right arrow key to move the character away from the rigid body. On contact no signal is emitted.


### Minimal reproduction project

[test.zip](https://github.com/godotengine/godot/files/11160540/test.zip)

c.rA = global_A - A->get_center_of_mass();
		c.rB = global_B - B->get_center_of_mass() - offset_B;
		
		Vector3 inertia_A = inv_inertia_tensor_A.xform(c.rA.cross(c.normal));
		Vector3 inertia_B = inv_inertia_tensor_B.xform(c.rB.cross(c.normal));
		real_t kNormal = inv_mass_A + inv_mass_B;
		kNormal += c.normal.dot(inertia_A.cross(c.rA)) + c.normal.dot(inertia_B.cross(c.rB));
		c.mass_normal = 1.0f / kNormal;
		c.bias = -bias * inv_dt * MIN(0.0f, -depth + max_penetration);
		c.depth = depth;
		Vector3 j_vec = c.normal * c.acc_normal_impulse + c.acc_tangent_impulse;
		c.acc_impulse -= j_vec;
		
		if (A->can_report_contacts() || B->can_report_contacts()) {
			Vector3 crB = B->get_angular_velocity().cross(c.rB) + B->get_linear_velocity();
			Vector3 crA = A->get_angular_velocity().cross(c.rA) + A->get_linear_velocity();
			if (A->can_report_contacts()) {
				A->add_contact(global_A + offset_A, -c.normal, depth, shape_A, crA, global_B + offset_A, shape_B, B->get_instance_id(), B->get_self(), crB, c.acc_impulse);
			}
			if (B->can_report_contacts()) {
				B->add_contact(global_B + offset_A, c.normal, depth, shape_B, crB, global_A + offset_A, shape_A, A->get_instance_id(), A->get_self(), crA, -c.acc_impulse);
			}
		}
		if (report_contacts_only) {
			collided = false;
			continue;
		}
		c.active = true;
		do_process = true;
		if (collide_A) {