"Keep Remote Directory up to Date" is an extremely useful feature, but the core functionality relies heavily on the accuracy of remote timestamps vs local..
While the feature pulls through even when the local and remote system times are completely different by forcing "preserve timestamps", this latter feature wreaks havoc on remote build scripts in such situations.
The current choices seems to come down to:
- Synchronize the remote and local system times.
- Take automatic synchronization and sacrifice convenient build scripts.
- Take properly working build scripts and lose automatic synchronization.
1. Instead of comparing "local vs remote" to determine changes, compare "local vs local (before)" to get the changes. 
2. Make the "preserve timestamps" option uncheckable when Keeping Remote Directory Up To Date.
 I thought it was already doing this, hence the option to "Synchronize on start". I can't really think of a benefit of comparing vs remote.. (It can't be for determining changes that happen to remote because the notification routine is only registered locally(?).)