Generally, I liked borg, but I did run into a situation a few years ago where borg would fail to recover parts of my backups because of some unicode error. I didn't knowingly have any unicode filenames in my home directory, but something annoyed it to the point that it would bomb out during recovery. I tried for a few hours using different mechanisms to do the recovery, but couldn't find any way to resolve it.
So, as always with backups, make sure you do regular test recoveries.
It will take a while, especially if you start out with emacs, but it is very rewarding. Some day I'll try ledger-mode and maybe up my level even further.
"Thinking, Fast and Slow" by "Daniel Kahneman" is a great book on these topics. There is a lot of info on how the mind can be tricked. I really recommend it.
I also thougth about this problem. Current playlist implementations are seriously lacking when you move your library. I have some shell scripts here that just replace parts of the path in the playlists.
I looked at your playlist format specs, why do you use floats? I'm currently coding on a GO audioserver and save time intervals as Nanoseconds (time.Duration). This makes more sense to me, as floats may behave badly in some contexts.
I use floats because it's most natural to represent duration in time. Nanoseconds are going to be about as lossy as floats too, I guess (although for a different reason). If you're going for maximum accuracy, you'd need to represent the duration as the number of samples.
I wonder if floats are going to be a significant problem, hmm.
If only we had a decent way to print those html pages to pdf. But It seems like the print-css is kind of neglected. The stuff barely is doing what it should(page-break and friends).
Neither can you really use min-height=20mm. A pity. And the nicer pdf creators (weasyprint) don't understand the new css rules like flexbox or grid.
So we are still stuck. No easy way to force a footer to the end of a printed page via css.