Thanks for the information Stan.
Here are some more details....
We created simple SSIS package containing a single data flow task in control flow. The data flow task contains an ADO Net Source to ADO Net Destination with 2 ADO.Net Connection Managers. One ADO.Net Connection Manager is pointing at the local database and the other ADO.Net Connection Manager is pointing at the SQL Azure database.
When the package is executed you can see the first batch of 5000+ records is transferred almost immediately. Then there is a long 1 to 2 min pause before the next batch of records is transferred continuing this way for 6 to 8 min until all the records are transferred. This behavior is not consistent; sometimes the pauses are smaller or longer. In some cases the SQL Azure connection is actually forcibly closed prior to the data transfer completing (BTW this happens in SQL Server Management Studio also). I am executing this package on a desktop machine with Quad Core Processor and 8GB of memory. Also a test of local database to another local database completes in less than 16 seconds for the same amount of records. A test of the same package from local server to remote network server completes in around 16 seconds.
As this is a single package, the parallel execution settings really don’t matter. I have played with the transaction isolation level and that did not make a difference. I am willing to forward the actual package if that helps. Thanks in advance for the help.