Marketo can, for its best customers, add more throughput to your SFDC sync, if that's the real issue.
But if you have lots of tools using API calls, then you need to figure out the volume of each and the #of calls/lead or update. You may have to try other things like
- reducing triggers
- adding wait steps to reduce race conditions
- request campaign order to reduce race conditions
- spreading out batch campaigns - do you need ALL of them to run daily?
- pay for more calls
Well a backlog of 20k updates can potentially clear in less than an hour depending on the number of fields exposed and would cost only 200 API calls. For reference the formula for the number of API calls it will take to sync is given number of updates is: round up( updates / 200 ), so 200 updates costs 1 api call, and 201 updates costs 2 api calls, in addition to the basesline number of calls per day, which is around 7200, if you're on a standard configuration.
If you're seeing a backlog constantly repeating itself, then I would suspect that this is due to a high volume of recurring changes. Do you have any fields which are automatically updates in salesforce on a recurring basis on your accounts, like timestamps and the like?