Já desenvolvi uma funcionalidade assim, meus dois cents.
Não existe biblioteca única (Free) que capture a localização e permaneça em segundo plano.
Então é necessário utilizar o pacote Geolocator e captura a localização do usuário normalmente e construir usando a biblioteca flutter background a execução da função que captura a localização em background.
Pontos a considerar, background não é a forma correta de captura a localização pq eventualmente o android SO irá fechar seu app qnd precisar entregar mais memoria ram para outros processos.
O processo mais eficiente se da por foreground que em resumo envolver gerar uma notificação fixa enquanto seu app captura a localização fora do plano principal. Pesquise essas estrategias e conseguirá implementar essa funcionalidade.