Just ran into this problem again, read this thread, and felt given the wild postulated solutions here, that perhaps Occum's razor likely applies. While I have not extensively tested the hypothesis I'm about to present, given the relative simplicity of actions I took to address the issue, I feel strongly that my thesis is close to the mark.
Multi-device sync is a non-trivial exercise; there are numerous non-deterministic actions that can occur on either side of a sync session that can cause one side to "time out" or otherwise drop/pause/hang the connection and thus "hang" the process of synchronizing, leaving the other side "waiting by the sea". In my case, I had a folder with a word document and some PDFs all stuck with the "sync cloud" displayed and "waiting for upload" on the parent folder. This seemed like the classic "hang", perhaps initially caused by MS word writing to the file at the wrong instant, causing a lock contention, and thus hanging the process, and the mac waiting patiently for iCloud to re-engage, which it was never going to do.
My fix? I opened the word file, added a space character, and saved the file (yes, yes, I could have used "terminal" to "touch" the file, but this was easier). This "change" caused macOS to "restart" the sync effort, and iCloud responded, and the upload of all files was immediate and complete. Ideally, MacOS should set a state flag and sync_in_progress_duration for itself, and "time out / restart" sync efforts that have been placed in "pause" for an excessive amount of time should have the whole sync process restart. Again, not necessarily simple to fix, but my guess is there is more that can be done ala TCP/IP-like backoff and retry that would mitigate most of these hangs.
So, the thesis is "sync is hard; touching files, while annoying, is easy. Make a change, save your sync."
Hope that helps.