Syncthing works like a charm. No conflicts for me. Lots of options, easy to set ignore lists (for .obsidian, etc). Very transparent about what it’s doing as it syncs, if you watch the web GUI.
You can opt for Syncthing to handle your file versioning, but I haven’t tried it.
It works best if you have at least one always-on device. Using it only on mobile devices or laptops which sleep is a recipe for having unsynced local changes. Like you say, you need a desktop machine or a home server as your “cloud.”
I’m tempting to get the early bird pricing on the native sync and have in-app versioning.