Você poderia usar o prerotate / finscript para ter certeza de que não há nenhum arquivo com o nome que você está prestes a usar, mas se você estiver preocupado com rotações acontecendo a qualquer momento, isso pode ser complicado. O pior caso é que você tenha duas rotações do mesmo arquivo sendo executadas ao mesmo tempo (2ª iniciado antes do 1º concluído) e, se ambos determinarem que não há conflito de nomes, um substituirá o outro.
Uma abordagem mais fácil pode estar alterando o nome do arquivo girado para incluir uma data mais exata, por exemplo, incluindo nanossegundos no timestamp. Isso deve tornar muito improvável que os nomes entrem em conflito. Se você quiser ter certeza de que não há conflito de nome, use mktemp, mas você receberá nomes "feios". A lógica de tal mudança de nome deve ir para pré-rotear a seção | postrotate / endscript da configuração logrotate.