I’d think that using scene queries should be pretty fast and done by the physics engine. Maybe you can instead use a simple box since that is the most basic collision shape. A sphere might work too.
There should be a scene graph inside PhysX if Unreal doesn’t override it with their own somehow, and it should be relatively fast. I doubt you need to implement your own octree otherwise something as simple as view frustum culling wouldn’t even be scalable.
Using large scene query objects results in large results per missile to sort through, so if you try to narrow it down to smaller areas being checked per missile should make it faster. Now that I think about it, a cone may be better for this. Maybe your cone is too broad, but then you’d miss objects. Maybe a sphere is good but make the range not too distant.
You could also try using a less strict sort if possible, like not choosing the closest object, but instead something that is somewhat close.
It could also be that the missiles work in groups. Like say you fired 100 missiles. It may be that a swarm of 10 of them stay close together and there’s one swarm manager or something that tracks a target. Each individual missile just goes to the target. I’m not really sure what the game you’re talking about is, (although your video really reminds me of Mech Warrior 3 which is like the best one IMO!!! anyway) it’s possible that all missiles go to the same target and there isn’t a check being done per missile at all. If it is MW3, there were weapons like LRM 20’s which only fired 20 missiles at once, not hundreds, and those required the mech to lock on once.