Steve,
I'm reading through your post again, and something springs to mind that i've had some challenges with.
You've written your modwheel is on control 1.
Is this the same channel from your controller that transmits Midi into Logic?
With EXS being built into Logic, this problem is unlikely to appear, but i'm wondering if the 'MiDi' stream through to the VI plugin, is in someway causing a conflict.
I'm definitely no expert with either computer or MIDI, but i've learnt to check the obvious stuff first. And i mean no disrespect towards you if you ARE an expert. More just thinking aloud on my part. I wonder if you're overloading the midi bandwidth going into logic by crossfading. Is it worth checking your Midi bandwidth in preferences, and maybe increasing it a little? (As i understand it, Logic comes with a MIDI bandwidth default of 50%.)
Secondly, you write that standalone works fine. So i find it curious that the plugins aren't working well, unless you're hitting a RAM limit within Logic. (Logic is able to see a max of about 3.5 GB i think.)
Third, the EXs is an extremely efficient sampler, as it's a) built specifically for Logic, and b) is monotimbral. I suspect the RAM footprint of EXS is quite a bit less than VI, or any other sampler on the market.
It might be too much to expect to load the same number of instances as plugins, given that although the VI is monotimbral, it's built and designed to do a great deal more, with a much larger selection of samples to choose from. Add to that the entire concept of cells and matrixes, and you're playing and preparing by number of cells more than one articulation at the same time. At the moment I'm using a composite of 6 EXS articulations per instrument, for a normal orchestral template. I switch these by midi channel using a tool built by a very clever chap here named Kai.
The point i'm making is, For each VI plugin instance, (and remembering EXS is smaller sampler, with less RAM needed for each articulation instance) you're doing the same with one plugin, as i'm using with 6.
On top of that, the Sample purge in VI is something EXS doesn't have, so you get even more resource to use.
Next, despite the best efforts of developers, sample players or VI's can't see into the future. So if the song hits a new set of notes you've inputted, and you've already purged samples, the VI must suddenly find new samples, and this may well be a reason why you're getting a stoppage. Maybe you could try loading all samples first, before pressing play into a crossfade, and see if that helps. In EXS, all samples are already loaded (with the resulting constant RAM hit), so the instrument will play through. (This isn't always the case. Logic, for me at least, has hiccups, even with only one EXS loaded, and gives me that CoreAudio Overload message. It's not always a lack of RAM or CPU, but other overloads too, including dense midi info.)
And it may also be the case, that because the VI standalone is not 'constrained' within Logic's limits, and uses it's own Ram requirements, the system can keep up with samples, Midi data changes, etc.
I'm no expert, as i will continue to say, but maybe something here may give you a clue as to what is providing an unwelcome challenge in your system.
It is the case for me, that opening a song in Logic that is midi and sample intensive, often gives me error messages to begin with, and settles down after a couple of playthroughs. But if i change something, then hit play, Logic, and my modest little computer suddenly gets a huge spike in performance percentage, and it may take a couple of stop and starts to get everything running smoothly again. It's as if all the EXS's are cruising along like a gangster in a pink cadillac, and then suddenly there's a new speed bump in the road!
A final question.
Have you tried to run all VI instances standalone?
If so, how did your machine perform?
Regards, and good luck,
Alex.