for a recent project we were facing the same problem. The problem with the Audio element is not that it’s to “slow”, but if it is still playing (because the sound is too long), a play() call will not restart it, but gets ignored instead. We worked around it by using multiple Audio elements and toggle between them, so repetitive calls trigger different Audio elements. We modified the AudioManager from our FlappyBird demo game, to keep sound calls clean in the entities. Also don’t forget to check for settings.soundEnabled before playing the sound, since the Audio element is a standard Qt component.
I hope this works for you too.