A solução geral para garantir que apenas um (de um conjunto cooperativo de programas) esteja fazendo algo de uma só vez é um mutex de algum tipo. Nesse caso, você obteria o mutex antes da chamada afplay
e liberá-lo logo após o afplay
terminar. Isso garantirá que você esteja executando apenas um afplay
por vez.
Você tem várias opções para mutexes entre processos, mas o mais fácil é provavelmente o arquivo de bloqueio. Eu pessoalmente não conheço Python, mas o Stack Overflow tem “ Bloqueando um arquivo no Python "Que parece dar muitas opções.