For syncing, Syncthing works pretty well for me - the only issue is syncing of plugins for which I wrote a script to selectively copy the details in .obsidian. I think it already has offline support, works fine without internet. On the point of complexity, I think the key to note taking is to avoid too many workflows; just do the minimal organization and just focus on getting it in, you can always cleanup later (or not, considering search works pretty well).
For syncing on my own database, I just put the source directory of my graph into a folder in my computer's documents folder (on a mac). Then I have the documents folder enabled for iCloud syncing.
I do the same thing on my work computer, iPad, and iPhone. So the files are synced using the iCloud backbone. I just point each instance of Obsidian to the same folder locally on each computer and the file is synced in the background, with Obsidian unaware of this, it just treats it as a local graph. And it works flawlessly.
This is effortless for people with Macs. For people on cross-platform systems you could use dropbox, google drive, or onedrive or similar. Plenty of solutions out there.