Dynamic and Static Navmesh

That’s exactly how dynamic navmesh works on world-partition worlds. In regular maps i’m not so sure, but likely should also be the same

However, this approach is quite costly in terms of performance

Anyway, while it will cost some performance on change, it should not be “quite costly”. In terms that you may have a spike for a 1 frame, but it shouldn’t affect performace all the time.

And if you really have performance drop all the time due to this, it’s likely means that you actually regenerating navmesh every frame. Turn on navmesh display, unpossess your pawn in editor (iirc F8 by default), then look for a red patches: somewhere there are a Movable actors that have a collision with CanEverAffectNavigation=true. When you found such objects - either make them static or CanEverAffectNavigation=false