It took some effort and pain but I have a pretty solid self-hosted system now that requires no futzing around:
0. epoupon's Lightweight Music Server (LMS) [0] is an awesome, barebones Subsonic client written in C. It's really good and deserves to be more well-known.
1. wrtag [1] is a less-fully-featured beets written in Go that handles tagging.
2. amperfy [2] is an excellent Subsonic client that runs on iOS. It's configured to automatically cache anything and everything on LMS.
3. Syncthing [3] syncs music files. Needs no introduction. Rock solid.
4. Swinsian [4] a macOS music player that is very reminiscent of old iTunes, but much better. The information density is so incredibly refreshing after using Apple Music.
5. Everything talks to each other seamlessly over Tailscale [5].
All together, an entire open-source stack maintained by volunteers that easily outdoes Apple's own UX in the music department.
[0] https://github.com/epoupon/lms
[1] https://github.com/sentriz/wrtag