ROS2 Parameter Value Querying

I need a much better way of grabbing the current value of every parameter of every node running on my system. Not just the dynamic ones, but the defaults and overrides from the launch system. From an experiment documentation standpoint, this is extremely important to understanding exactly how things are configured when producing data and later if data is changing figuring if one of these changed. Sure some nodes may be less important and their parameters not matter much, but there would remain many that are important, so I just want to query all of them. Unfortunately in ROS2 this is extremely disruptive to the node graph and it causes data I’m recording to have gaps. I’ve already played around with QoS to make this a little better, but the entire problem is so frustrating regardless. It was so much better in ROS1. Does anyone have a low impact method to achieve this? Or are there plans to make the parameter system smarter in the future? Is there perhaps an easy way behind the scenes to mod source code and do something like write the parameters values to a field/database on startup?

Can you provide a bit more context like host OS, a rough idea of the system configuration, and what ROS distro?

Parameters were a fairly sizable work surface in Lyrical. There might be some updates there that improve the situation.

What do you do currently? Getparam on all existing params and then subscribe to parameter events?