Minha resposta final para isso: "Não faça isso".
Não consegui encontrar uma maneira de melhorar a velocidade além de cerca de 2Mbytes / s ao criar muitos arquivos pequenos. Para volumes de dados terrabytes, isso é apenas muita inércia para se trabalhar.
Estamos seguindo os passos do facebook e jogando os arquivos em um armazenamento de dados binários (ou usando uma tabela maciça de mysql / myisam com BLOBs, experimentando agora ...).
É um pouco mais complexo, mas elimina o problema de busca aleatória associado a arquivos pequenos, e posso trabalhar com volumes de dados terríveis em questão de horas, ou um dia, em vez de semanas.
O MongoDB é mais uma boa opção para investigar.