Basically I did a wrapper over my playing class that converted the audio player delegate methods into an async/await function that is resolved when the audio is finished.
Then, inside the perform() method I use await player.startPlaying() (my custom object) and it plays normally when the automation is launched.