I changed the direction of the angular acceleration from clockwise to counterclockwise because the direction of the impulse during collision is actually the opposite. After this adjustment, I observed that some ellipses started to respond correctly upon collision, which indicates that the penetration depth and contact point calculations, moment of inertia are likely accurate. I suspect the issue lies in the fact that the collision is being handled unidirectionally rather than bidirectionally. I've marked the areas in the code where I believe the problem might be. Let me know if you need any clarification.