Initial freeze using StaticLoadObject

Your second guess is probably good.
If your game is not to big you could cache sounds at start in some component.
I done this in my game, there are around 15 sounds per map and I cache these sound
in the component that I call USoundManagerComponent, they are loaded at map start.

There is also a way to load assets asynchronously but my knowledge is limited.