Honestly just use GitHub. My (high level) understanding of sync is file system issues file event for every file change, we receive it, determine if its relevant, and then make the appropriate delta. You can imagine with thousands (or millions) of small files this becomes nearly impossible to manage with an OS integrated sync engine.
Indeed, and I do/did, but I was in an environment where I would switch quickly between a laptop and a desktop, and Dropbox sync worked extremely well for quickly switching between the same codebase on multiple computers, even with our large, half-a-decade git repo
You can put the .git directory outside the working directory. Might be helpful. Sync the working dir with a sync service, but the .git dir with... git.