Have you tried different servers (you can select country and city in the app)?
Have you tried it on different days of the week at different times?
That would be my starting to find out where the bottle-neck is. Under optimal conditions Mullvad should get very close to your 400mps (the protocol has some overhead, but in a speed test with "full" packages that's only about five percent of your bandwidth). Of course they can't guarantee optimal conditions on all servers all the time, but it's also not rare for them to get close.
The distance to the Mullvad server doesn't matter much when it comes to bandwidth. Hence, unless you're gaming and actually need a short ping, you can try servers that are further away.
If you don't get anything higher than 150Mb/s at any time with any server, we'll indeed have to look for technical issues on your side.