As to your first point, I managed this with the user settings on a home server via sshfs (Linux desktop and server). This could also work with shares for Windows (although I didn't try). sshfs is mounted via a script on logon.
I'm able to sync some of it using SyncThing. But I ran into enough sync conflicts, than I've ignored a lot of files in my profile. So not much actually syncs anymore.
sshfs would work if you are on the same network all the time. I have yet to get dynamic dns working for my home connection, so when I'm at work I doubt I'd be able to access my home sshfs share.
Has some warts, but works generally well.