Hi,
as far as I can tell, it’s not possible to pregenerate VSM tile caches if the camera moves in unpredictable ways, but Unreal 5.4 has a feature called Separate Static Caching which optimizes cache invalidation behavior for static geometry (please see this link for details on how to benefit from this feature).
Regarding implementing the dynamic shadow resolution idea, I would measure the difference in degrees in the Z-direction between the previous and current frame (or equivalent for translation in the XY plane) and dynamically set the value of r.Shadow.Virtual.ResolutionLodBiasDirectional (or r.Shadow.Virtual.ResolutionLodBiasLocal depending on the type of light) each frame within a certain clamped range e.g. from -0.5 for still camera to 3 when the camera is rotating quickly, based on the degree of movement.
Could you also check if your scene contains a SceneCaptureComponent2D as that may cause cache invalidations when rotating the camera according to this thread (this may or may not be related to the issue you are seeing).
Thanks,
Sam