Why does a body always rotate about its center of mass?
You presumably already know that in the absence of external forces, the center of mass of any collection of particles moves at a constant velocity. This is true whether they are stuck together in a single body or are just a bunch of separate bodies with or without interactions between them. We now move to a frame of reference moving at that velocity. In that frame the CofM is stationary.
Now suppose that the particles are indeed stuck together to form a rigid body. We see that the body is moving so that: 1) the CofM remains fixed, 2) all the distances between the particles are fixed. (This second condition is what is meant by a $rigid$ body after all).
A motion with these two properties, (1) and (2), is precisely what is meant by the phrase ``a rotation about the CofM''
Here is one more way to look at this:
You can consider an object with any shape as a single point where all the mass of the object is concentrated. This point is called the center of mass. From Newton's second law, as no force is acting on the object, the center of mass must either move in a straight line or be stationary. If the body rotates, the only way the center of mass can obey that law is if the rotation is around the center of mass.
Imagine two stones tied together with a massless rod and let one stone to rotate around the second one being fixed.
In that case there must be a force that accelerate the first stone perpendicular to its velocity and causes it to rotate around the second one. The whole setup is free, so there is no counter force to equalize and this setup violates Newton's laws.
If we want to rotate this stone-rod-stone body with respect of Newton's laws we must add and arbitrary point it will be rotating around. In this case both stones are revolving around this point, radial force is applied to both of them and they have opposite direction. The forces must cancel out completely and they cancel out only if the arbitrary point is placed exactly in the centre of mass.