Repository: godot
Issue: CharacterBody2D node slides when its not expected
Labels: bug,topic:physics,topic:2d

### Godot version

4.0 mono stable

### System information

Win 10, geforce 1080ti 

### Issue description

If the X scale of the node is 0.5 and the Y scale is 0.497794, then CharacterBody2D starts sliding upon collision with another object of the same type. No such problem when scales are both 0.5.

### Steps to reproduce

1. create a 2d node project to act as a world scene
2. create anther scene to act as a "Player"

to player add main node of type `CharacterBody2D`, add `sprite` and pull icon onto texture, add another child node `ColissionBody2D` and set the `circle` as a form.

![image](https://user-images.githubusercontent.com/20644772/226911250-d7a636cc-c94c-4d86-84b7-e077516e85d3.png)

![image](https://user-images.githubusercontent.com/20644772/226911218-20fbf516-4831-406b-a14c-8b4eb3ede8ee.png)

then set the scale for the player main node to 0.5 and  0.497794

![image](https://user-images.githubusercontent.com/20644772/226911524-fe2413c7-52b2-4722-9585-1e4d3e1addee.png)

now in the main scene node add 2 player nodes. Name one of the players "Player1", run scene - move one player into another. the player that moves will start sliding on the second player upon collision:

![image](https://user-images.githubusercontent.com/20644772/226917547-3a40eeff-5157-4a08-ad16-030516ac8dad.png)

![image](https://user-images.githubusercontent.com/20644772/226911872-e307ed9f-64f6-4579-a73a-adf47485e4fc.png)

![Animation0](https://user-images.githubusercontent.com/20644772/226912255-694bd1b9-2535-4e0c-9f70-438179456b72.gif)

player code is:

```csharp
using Godot;

public partial class player_2 : CharacterBody2D
{
	public const float Speed = 300.0f;

	public override void _PhysicsProcess(double delta)
	{
        if (Name != "Player1")
            return;
		
        var inputVector = new Vector2(
            Input.GetActionStrength("ui_right") - Input.GetActionStrength("ui_left"),
            Input.GetActionStrength("ui_down") - Input.GetActionStrength("ui_up")
        ).Normalized();

        var velocity = inputVector * Speed;
        
        //Velocity = velocity;
        //MoveAndSlide();

        MoveAndCollide(inputVector.Normalized() * Speed * (float)delta);
	}
}
```

**now, if you set the scale to 0.5 and 0.5 then the sliding effect will not occur.**

This issue been bugging me for a long time. It does not matter if you use `MoveAndCollide` or `MoveAndSlide` method to move the player.. My assumption was that when we use `MoveAndCollide`  then the sliding will not occur under any circumstances, but this is not the case.

This bug will also occur even if you use additional guard to unset the velocity upon player colission:

```csharp
        KinematicCollision2D collision = MoveAndCollide(inputVector.Normalized() * MOVE_SPEED * (float)delta);
        if (collision != null && collision.GetCollider() is CharacterBody2D)
        {
           // GD.Print("STOP");
            velocity = Vector2.Zero;
            Velocity = velocity;
        }
```



### Minimal reproduction project

[Test5Colissions.zip](https://github.com/godotengine/godot/files/11040310/Test5Colissions.zip)