I know it's been a while and I put this issue on the side to work on other stuff, but today I tried out what was suggested for using a matrix.
It looks like this:
Matrix.CreateTranslation(origin.X, origin.Y, 1f) *
Matrix.CreateRotationZ(rotation) *
Matrix.CreateScale(1f, scaleY, 1f) *
Matrix.CreateTranslation(position2.X - origin.X, position2.Y - origin.Y, 0f);
It looks decent enough (a little blurry but that's ok)
The main problem is the need to interrupt the spritebatch in order to use this matrix. So there's a performance drawback. And also it seems to me like very bad code to end the spritebatch in the code for each instance of this object.
There's a suggestion that was made a long time ago to support matrices as an overload for SpriteBatch.Draw(). https://github.com/MonoGame/MonoGame/issues/3156
It also just so happens that in my GUI code that I've been working on, I use matrices to keep objects tethered to each other. To do this, I have to call Decompose just to pass the values (position, rotation, etc) into Draw. I'm sure there are many other people doing the same thing. So adding a matrix overload to Draw would not only make this sprite skewing/rotation more doable but also simplify other Matrix uses as well.