Verificar se arquivo existe por 20 segundos C#

Pessoal estou fazendo um módulo aqui que trabalha com troca de arquivos e na documentação pede para aguardar 20 segundos pelo arquivo de status xxxxxxxx.sta, porém, não sei como implementar isso em C# tava tentando algo nessa linha: mas parece que roda de forma assíncrona e não consigo pegar o resultado booleano se o arquivo existe ou não na hora que eu quero

    public void ValidarArquivoStatus(int numeroSequencialDoArquivo)
    {
        seq = numeroSequencialDoArquivo;
        aTimer = new Timer(1000);
        aTimer.Elapsed += OnTimedEvent;
        aTimer.AutoReset = true;
        aTimer.Enabled = true;            
    }

    private static void OnTimedEvent(Object source, ElapsedEventArgs e)
    {
        Principal.ValidouArquivoDeStatus = false;
        previousTime = e.SignalTime;
        //int tempoMaximoTentativaExecucao = Convert.ToInt32(Funcoes.LeParametro(14, "7", false));
        int tempoMaximoTentativaExecucao = 20; 
        if (ExisteArquivoDeStatus(seq))
        {
            //aTimer.Enabled = false;
            Principal.ValidouArquivoDeStatus = true;
            aTimer.Enabled = false;
        }
        nEventsFired++;
        if ((nEventsFired == tempoMaximoTentativaExecucao) || (Principal.ValidouArquivoDeStatus == true))
        {
            aTimer.Enabled = false;
        }

    }

 private static bool ExisteArquivoDeStatus(int numeroSequencialDoArquivo)
 {
        string arquivoStatus =
            @"" + Funcoes.LeParametro(14, "6", false) + numeroSequencialDoArquivo.ToString().PadLeft(8, '0') + ".sta";

        return (File.Exists(arquivoStatus) ? true : false);

    }