Parece-me que o uso de --fetchall e --keep significa que você não pode retomar uma busca interrompida sem buscar novamente todas as mensagens obtidas anteriormente.
fetchall
Retrieve both old (seen) and new messages from the mailserver. The default is to fetch only messages the server has not marked seen.keep
Keep retrieved messages on the remote mailserver. Normally, messages are deleted from the folder on the mailserver after they have been retrieved.
Você pode estar interessado no Gmail off-line (review )
Atualização:
Parte da dificuldade é que, como eu tenho certeza que você sabe, o IMAP é projetado para que todo o e-mail seja mantido em um local e você acesse esse serviço on-line de vários clientes - todos apresentando a mesma visão. Um serviço POP espera que você baixe todos os seus e-mails em um único cliente local (e os exclua do servidor POP). O que você está tentando fazer não é nem um nem o outro. O Fetchmail tenta lidar com isso apenas fazendo o download de mensagens marcadas como não lidas. Se você marcar algumas mensagens como lidas, acessando o servidor IMAP com um cliente, o servidor não apresentará essas mensagens ao fetchmail quando solicitar mensagens não lidas. Você deseja um espelho local de sua caixa de correio IMAP, independentemente do status da mensagem. Eu não sei como usar o fetchmail para conseguir isso.