Eu descobri que a saída da primeira linha era realmente o problema:
head -1 file.log | wc -c
43297796
A primeira linha foi longa e binária por algum motivo.
time head -1 file.log > /dev/null
na verdade retornou em 0.035s. Eu não sei o que fez com que essa linha se tornasse uma binária, mas depois de descobrir isso, o mistério foi resolvido.