Running "sim sync" to a slow remote filesystem can take a long time due to having to check the time stamp and size of all the remote files. It would be good to speed this up.
One option would be to assume that files are only edited on the local machine, which is a common situation. Each invocation of sim sync to a given machine would record the time at which it completed, and subsequent syncs would only transfer those files which had changed on the local system since then.
A further optimisation would be to avoid statting all the local files by using a filesystem notification API such as fsevents or inotify to determine the required information. An advanced case would also use such a system on the remote side, so you wouldn't have to assume that the remote files were unchanged.