1. as much as possible, avoid TRUNCATE commands. Sync Framework change tracking is based on triggers. TRUNCATE will not fire triggers, no triggers, no changes logged.
in your scenario, if you truncate the table, your user/base table is no longer in synched with its corresponding tracking table.
you said an update on the source doesn't get applied on the destination, you truncated it already, so there is nothing to update. Sync framework will not reinsert a row you removed.
2. if you update the record in both source and destination, you get a conflict. subscribe to the ApplyChangesFailed event and handle the conflict there by specifying which record should win.
am not sure I understand your third question.