Boa, eu também ando medindo os tokens de perto, então concordo com a direção. A entrada encolhe mesmo.
Mas na prática o CSV tropeça quando o valor tem vírgula, aspas ou quebra de linha no meio: a coluna desalinha e o modelo lê o campo errado. Às vezes o que você economizou volta como tempo de conferir a saída.
O que mais me ajudou aqui foi tirar a conversão de JSON pra CSV das mãos do modelo e deixar num script. Aí essa parte sai do custo de token e vira processamento de CPU e memória, que é praticamente de graça e não varia. O modelo recebe só o dado já formatado.
Você faz a conversão no código ou deixa o modelo cuidar disso?