Preallocating cues will still cause garbage because you need to call GetCue again from the system once it finishes playing. I have tried that solution before some time ago. Are you testing on the xbox? Because on PC, it sounds great.
I also noticed that on Xbox, the mixer seems to be flooded more easily. If I have two of such continuous sound playing from PlayCue (one for machine gun, one for engines), the stutter gap is much more worse than if I have one gun firing only. Again, on PC, no such issue. The mix priority in XACT seems to make no difference.
I also noticed, on xbox, 3d sound position seems to be lagged. When I fire the gun while turning, on xbox, I can hear it turning softer when turning. Not on PC, using joypad controls too.
I running at 30fps, but I doubt this should cause any timing issue with sound
this.TargetElapsedTime = System.TimeSpan.FromMilliseconds (33);