ParticlesGPU Library 2.0 (dx11)... commitment :)

Yeah, cheap grid clustering is a great start for perf gain when calculating any forces emitted by “neighbours”.
When I think about the modularity of such a thing this is a hard nut to do generically (even in c#), let alone cores and types on GPU.

But you were asking for constructive input: it seems to me a necessity to have a cool way of a conditional split of particles into different spreads. the condition is pretty much like the delegate in vl:
split all current particles according to a field, or even a space box to indicate “local”.
It should be possible to do so in real time, so you can shake your grid at will to minimize cell border artifacts.

PS: I’m not sure if we get vl shader language code generation any time soon, but a few TemplateX (DX11.Particle) could help out for some time.