Although I'm having good success in speeding up silverpop to be incremental one gap is the privacy deletes. The only way to remove since-deleted rows from the silverpop_export table is to compare it against the civicrm_email table in it's entirety (not constrained by
modified_date).
This is not super-slow (1-2 minutes) but I think it would be locking enough to limit when we can run it.
Since I seem to be working off email_ids I think we could update the privacy delete to store a table of deleted email ids for this purpose