Hi Craig,
Thinking Particles have no option to be cached or baked. To a certain degree you can use MoGraph (Matrix) for that. Drag the TP-Group into it (like an Object for the Position) and cache it.
The following is more “brainstorming”, and nothing really which could be called “one size fits all”.
There are always sub-solutions thinkable. Not really “solutions, but you could create points and write the positions on these points (polygon object) points which aren’t needed become a huge distance to the camera, to be out of the way.
Python comes to mind, but certainly not simple
I have not explored it deeply enough to say anything with certainty, but based on the requirements of your project, perhaps Alembic might work for you… Again, you need to explore it, I can’t help really so far with it. Export Alembic and read it back in.
Sometimes I like to use particles in the MoGraph Tracer, and make the Tracer editable on the last needed frame. Again, not suitable for most projects.
All the best
Sassi