Huzzah! I think it works
I tested it with 5000 particles and it ran at 60 FPS on a standalone build, so I think the concept is correct. I basically pass in a list of particle data (x, y, z, scale, color, rotation) and it clears the meshes and UVs and re-draws it with the new data each update (which I guess is the way I'm supposed to do it?)
Just wanted to say thanks for the quick support and pointing me in the right direction.
Now it's time to test and optimize it for mobile... Wish me luck