I did some more tests and found out something interesting.
My game uses the Persistent World + Streaming levels. It still has loading screens but we found streaming levels had a ton of advantages over loading levels.
Only problem is that navigation wouldn’t work on streaming levels unless it was dynamic and auto rebuilt itself when a level was loaded.

With that in mind, check this out:https://youtube.com/watch?v=2u3JfsC7_5Q
First half shows new audio on a new map working fine.
Second half shows what happens when I introduce a navmesh and it starts building.
When the engine is under any work load (including compiling shaders) audio plays with a delay based on the size of the sound.
This explains why audio is delayed in my game, as the navmesh builds dynamically when the game starts and when levels change (I’d love for it to be a static navmesh but apparently that doesn’t work with persistant/streaming levels)
This also shows why It was working fine on a colleagues computer, as he was working in a level without any navmeshes. Also why it works fine on beginplay, It runs before the navmesh starts dynamically building as the level has to stream-load first.
At the end of the video I tried showing it in game however the nav wasnt dynamically building since that map wasn’t a streaming map, so it didn’t show in game.
Hopefully that clears some stuff up. Could be worth trying yourself in a new project. Make a huge plane with some obstacles, drop in a navmesh, and play a large song >3:00.
If you need any more info I’d be more than willing to help. Thanks!