ok, another random guess:
Maybe we could use an additional force, where an idle unit clears the path for an allied moving unit, before they are colliding, when it's blocking the way? The blocking unit would just slighty move to the side, but only if there is space available
There was a guy named Enkeli who knew how to do that for AOE II.
https://www.indiegogo.com/es/projects/enkelikuoleman/rise-of-kings-medieval-warfare
He knows how to convert 3D models to Sprite models.
I see. I wonder if increasing on-center repulsion range (to leave free self-alignment rotation) could have been a way out of that. Btw, I noticed that in your code you mention "a circular body is always struck through its centre", I guess this is some non-physical simplification since you might care more about just rotating elongated objects?