For anyone who stumbles across this, this appears to be a partial solution: instead of setting your groom asset’s solver to Springs or Rods directly, choose the custom solver option and then choose the Springs or Rods Niagara system.
We aren’t really sure why this makes a difference, but it’s definitely an improvement, especially at very low speeds.
This is still not a perfect solution. Ideally what we need is a way to record groom caches in engine at full speed, then play them back at any speed we want. Hopefully this is on someone’s radar at epic