Tested in UE 5.5, the fix is to use BuildTreeIfOutdated(false, true) on each frame tick after the gameplay/projectile positions update. Use after making changes to the (H)ISMC:
HISMC->BuildTreeIfOutdated(false, true);
(bool Async, bool ForceUpdate)
As the function says it will force rebuild the entire tree.
Projectile pools with a medium/large number of actors is a tricky case since collision can completely tank the frame rate, and async/gpu systems can be a pain to sync with. Niagara systems are great for cosmetics-only effects such as a spinning particle cone, but for anything involving collisions and movement on the particle level and actual callbacks - like a swarm of missiles with distance LODs - it’s understandable to consider HISMC or a large amount of AActors w/ mesh.
Not sure what the go-to should be for a projectile pool of say 300 homing projectiles. There’s the occasional selective dynamic collision or query traces, and a choice of pooled AActor, HISMC, and even Niagara.