Spent the evening trying to improve things generally.
I fixed up the firing by adding some precalculations to start up and adding a quick add/remove for collision geometry.
I then tested it with gravity on and noticed things started to suck very quickly. The reason being as things settled the long life caused the arbitrators to go insane.
So, I reduced the contacts per frame and enabled the auto-sleep, which as you can see from the video kills resting particles quickly. The downside is that sometimes you get the odd particle which doesn't start life fast enough and ends up staying still so.. year.. work in progress.
The video in question shows 10 emitters, in groups of two, firing out 6 particles each. One emitter in each group is paying attention to gravity, the other isn't which gives a nice effect.
The second half of the video shows them being fired twice, which causes a slight framerate hit as they settle due to the number of collisions going on.
A few things could probably still be improved, such as the sleep controller which goes over all the elements just skipping ones which are sleep; might be faster to maintain a second list and kill things from there as required.
That's for another day however, now I need some sleep [grin]