@dhalls -
I suspect it’s a side-effect of the parallelized loop; if you tune the ParallelOptions you may get a completely different profile.
A better comparison would be to create n threads (don’t use TPL, just plain threads) and then compare the two. Additionally, comparing using the async methods over the synchronous methods would give you an even better picture (but don’t mix with Parallel.For(..), use await Task.WhenAll(...)).
There are too many variables to change that effect the comparison; in general, you will use less system resources (cluster and app servers) and get decent performance with MUX. Depending on your use-case however (such as this one using the parallel framework) you may be better off with connection pooling.
-Jeff