One of our least favorite topics again comes to the fore: Throttling in hosted Exchange.
Redmond claims these changes are customer-driven, which may or may not be so, but from the standpoint of customers who want to migrate a lot of calendar data into Hosted Exchange, these modifications are like getting a grenade tossed in your lap.
In an on-premises migration it's straightforward to turn these limits off. Going into Hosted you're at the mercy of Microsoft (good luck with that) or the cleverness of your developer (yes, we can handle this).
If like me you find an hour long video of Exchange Web Services Affinity and Throttling as and act of stultification on the order of Hypnotoad, you can read most of the gist of this at More throttling changes for Exchange Online.
Our recommendations going forward for Hosted Migrations:
During validation, point to different CAS servers to reduce CAS-server throttling (our code is going to need to change to do this)
During an insertion, use MULTIPLE service accounts which means using parallel insertion processes and point these to different CAS servers. We're set up for this already, but we now recommend it in smaller migrations than we used to.
During migration, set the batch input to at least 50 calendar objects.
Props to Andrew at UC Irvine who called this to our attention by stepping on the landmine in test last week.