### 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)

Vector2 local_A = A->get_inv_transform().basis_xform(p_point_A);
	Vector2 local_B = B->get_inv_transform().basis_xform(p_point_B - offset_B);
	int new_index = contact_count;
	ERR_FAIL_COND(new_index >= (MAX_CONTACTS + 1));
	Contact contact;
	contact.local_A = local_A;
	contact.local_B = local_B;
	contact.normal = (p_point_A - p_point_B).normalized();
	contact.used = true;
	
	real_t recycle_radius_2 = space->get_contact_recycle_radius() * space->get_contact_recycle_radius();
	for (int i = 0; i < contact_count; i++) {
		Contact &c = contacts[i];
		if (c.local_A.distance_squared_to(local_A) < (recycle_radius_2) &&
				c.local_B.distance_squared_to(local_B) < (recycle_radius_2)) {
			contact.acc_normal_impulse = c.acc_normal_impulse;
			contact.acc_tangent_impulse = c.acc_tangent_impulse;
			contact.acc_bias_impulse = c.acc_bias_impulse;
			contact.acc_bias_impulse_center_of_mass = c.acc_bias_impulse_center_of_mass;
			c = contact;
			return;
		}
	}
	
	if (new_index == MAX_CONTACTS) {
		
		const Transform2D &transform_A = A->get_transform();
		const Transform2D &transform_B = B->get_transform();