Eu tive o mesmo problema e descobri um jeito hacker sobre o qual você pode ler aqui:
link
A versão dr, é usada o mozilla.cfg para bloquear a variável places.history.expiration.transient_current_max_pages para 2147483647 (o maior valor aceito). A questão é que o Firefox mudará essa configuração automaticamente, a menos que você a bloqueie.
Note que o mozilla.cfg não funciona no Portable Firefox, então em tal situação eu recomendo usar o Portable Pale Moon (que funciona com o mozilla.cfg)
Você pode encontrar informações sobre o uso do mozilla.cfg aqui:
link
Isso tecnicamente não o define para manter o histórico para sempre, mas ele retém um monte de entradas. Atualmente tenho histórico de 18 meses e meu arquivo places.sqlite (que retém o histórico) tem mais de 150 MB (6 meses atrás era cerca de 100 MB, então, para mim, adiciono 50MB a cada 6 meses). Note que, com tamanhos tão grandes, um SSD é ALTAMENTE recomendado. Se você não tiver um, considere usar um ramdisk + links simbólicos (um disco que salva dados em intervalos de tempo ou no desligamento).
Além disso, pode ser uma boa ideia fazer backups do seu arquivo de histórico, caso ele saia ou algo assim. Então, novamente, é uma boa idéia fazer backups completos de disco rígido também ...