o código a seguir está quase perfeito, mas as novas tarefas estão sendo adicionadas no ínicio da lista de tarefas não concluidas, mas eu preciso que sejam incluidas no fim dessa lista. pode atualizá-lo e me mandar o código completo atualizado? por favor?

import 'package:flutter/material.dart';
import 'dart:async';

void main() => runApp(const MeuApp());

class MeuApp extends StatelessWidget {
  const MeuApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Lista de Tarefas',
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        colorSchemeSeed: Colors.blue,
      ),
      home: const PaginaInicial(titulo: 'Minha Lista de Tarefas'),
    );
  }
}

class Tarefa {
  final int id;
  String descricao;
  bool concluida;
  bool emConclusao;
  bool marcadaParaExclusao;

  Tarefa({
    required this.id,
    required this.descricao,
    this.concluida = false,
    this.emConclusao = false,
    this.marcadaParaExclusao = false,
  });
}

class PaginaInicial extends StatefulWidget {
  final String titulo;

  const PaginaInicial({
    super.key,
    required this.titulo,
  });

  @override
  State<PaginaInicial> createState() => _PaginaInicialState();
}

class _PaginaInicialState extends State<PaginaInicial> {
  List<Tarefa> tarefas = [];
  int _contadorIdTarefa = 0;
  final TextEditingController controladorTexto = TextEditingController();

  Timer? temporizadorExclusao;
  Tarefa? ultimaTarefaExcluida;
  int? indiceUltimaExcluida;

  void exibirMensagemTarefaInvalida() {
    ScaffoldMessenger.of(context).showSnackBar(
      const SnackBar(
        content: Text('Tarefa inválida!'),
        duration: Duration(seconds: 2),
      ),
    );
  }

  void adicionarTarefa(String novaTarefa) {
    setState(() {
      String tarefaLimpa = novaTarefa.trim();

      if (tarefaLimpa.isEmpty ||
          tarefas.any((tarefa) => tarefa.descricao == tarefaLimpa)) {
        exibirMensagemTarefaInvalida();
        controladorTexto.clear();
        return;
      }

      tarefas.insert(0, Tarefa(
        id: _contadorIdTarefa++,
        descricao: tarefaLimpa,
        concluida: false,
      ));
      controladorTexto.clear();
    });
  }

  void alternarConclusao(int indice) {
    setState(() {
      Tarefa tarefa = tarefas[indice];
      tarefa.emConclusao = true;
    });

    // Após a duração da animação, mova a tarefa
    Future.delayed(const Duration(milliseconds: 300), () {
      setState(() {
        Tarefa tarefa = tarefas.removeAt(indice);
        tarefa.emConclusao = false;
        tarefa.concluida = !tarefa.concluida;

        if (tarefa.concluida) {
          tarefas.add(tarefa); // Adiciona ao final (tarefas concluídas)
        } else {
          tarefas.insert(0, tarefa); // Adiciona ao início (tarefas não concluídas)
        }
      });
    });
  }

  void iniciarCooldownExclusao(int indice) {
    setState(() {
      tarefas[indice].marcadaParaExclusao = true;
      temporizadorExclusao = Timer(const Duration(seconds: 3), () {
        excluirTarefa(indice);
      });
    });
  }

  void excluirTarefa(int indice) {
    setState(() {
      ultimaTarefaExcluida = tarefas[indice];
      indiceUltimaExcluida = indice;

      tarefas.removeAt(indice);

      temporizadorExclusao = null;
    });
  }

  void desfazerCooldown(int indice) {
    setState(() {
      temporizadorExclusao?.cancel();
      tarefas[indice].marcadaParaExclusao = false;
    });
  }

  void desfazerExclusao() {
    setState(() {
      if (ultimaTarefaExcluida != null && indiceUltimaExcluida != null) {
        tarefas.insert(indiceUltimaExcluida!, ultimaTarefaExcluida!);
        ultimaTarefaExcluida = null;
        indiceUltimaExcluida = null;
      }
    });
  }

  @override
  void dispose() {
    controladorTexto.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        foregroundColor: Colors.white,
        backgroundColor: Colors.blue,
        title: Text(widget.titulo),
        actions: [
          if (ultimaTarefaExcluida != null)
            IconButton(
              icon: const Icon(Icons.undo),
              onPressed: desfazerExclusao,
            ),
        ],
      ),
      body: Column(
        mainAxisAlignment: MainAxisAlignment.start,
        children: [
          TextField(
            controller: controladorTexto,
            autofocus: true,
            onSubmitted: adicionarTarefa,
          ),
          FloatingActionButton(
            onPressed: () => adicionarTarefa(controladorTexto.text),
            tooltip: 'Adicionar tarefa',
            child: const Icon(Icons.add),
          ),
          Expanded(
            child: Stack(
              children: [
                for (int indice = 0; indice < tarefas.length; indice++)
                  AnimatedPositioned(
                    key: ValueKey(tarefas[indice].id),
                    duration: const Duration(milliseconds: 300),
                    top: indice * 60.0,
                    left: 0,
                    right: 0,
                    child: TweenAnimationBuilder<double>(
                      tween: Tween<double>(
                          begin: 0,
                          end: tarefas[indice].emConclusao ? -0.1 : 0),
                      duration: const Duration(milliseconds: 300),
                      builder: (context, tilt, child) {
                        return Transform.rotate(
                          angle: tilt,
                          child: child,
                        );
                      },
                      child: Dismissible(
                        key: ValueKey('dismissible-${tarefas[indice].id}'),
                        background: Container(
                          color: Colors.green,
                          child: const Icon(Icons.check, color: Colors.white),
                          alignment: Alignment.centerLeft,
                          padding: const EdgeInsets.only(left: 20),
                        ),
                        secondaryBackground: Container(
                          color: Colors.red,
                          child: const Icon(Icons.delete, color: Colors.white),
                          alignment: Alignment.centerRight,
                          padding: const EdgeInsets.only(right: 20),
                        ),
                        confirmDismiss: (direction) async {
                          if (direction == DismissDirection.endToStart) {
                            iniciarCooldownExclusao(indice);
                            return false;
                          } else if (direction == DismissDirection.startToEnd) {
                            alternarConclusao(indice);
                            return false;
                          }
                          return false;
                        },
                        child: Container(
                          height: 60.0,
                          color: tarefas[indice].concluida
                              ? Colors.green.shade200
                              : (indice % 2 == 0
                                  ? Colors.lightBlue.shade100
                                  : Colors.lightBlue.shade300),
                          child: ListTile(
                            leading: Checkbox(
                              value: tarefas[indice].concluida,
                              onChanged: (value) => alternarConclusao(indice),
                            ),
                            title: Text(
                              tarefas[indice].descricao,
                              style: TextStyle(
                                color: tarefas[indice].marcadaParaExclusao
                                    ? Colors.red
                                    : Colors.black,
                                decoration: tarefas[indice].concluida
                                    ? TextDecoration.lineThrough
                                    : TextDecoration.none,
                              ),
                            ),
                            trailing: Row(
                              mainAxisSize: MainAxisSize.min,
                              children: [
                                if (!tarefas[indice].marcadaParaExclusao)
                                  IconButton(
                                    icon: const Icon(Icons.delete),
                                    onPressed: () =>
                                        iniciarCooldownExclusao(indice),
                                  ),
                                if (tarefas[indice].marcadaParaExclusao)
                                  IconButton(
                                    icon: const Icon(Icons.undo),
                                    onPressed: () => desfazerCooldown(indice),
                                  ),
                              ],
                            ),
                          ),
                        ),
                      ),
                    ),
                  ),
              ],
            ),
          ),
        ],
      ),
    );
  }
}