A solução foi muito criativa. Imagino que a redução deva ser grande pelo tamanho da base também. Eu tentei fazer uma simulação com 22.000.000, um pouco menor do que você chegou a fazer, mas já ajudou bastante a reduzir.

Eu fiz meus testes e coloquei eles aqui caso alguém queira ver: https://www.tabnews.com.br/matheus1714/otimizacao-de-arquivos-grandes-com-pandas