Já que você mencionou o hardware, você pode querer ver algo como o BigIP da F5, que pode fazer uma enorme diferença em situações como essa. Ele encerrará essas conexões de clientes móveis (e outros), armazenará o conteúdo em spool e otimizará os fluxos de back-end. Mas é uma coisa cara.
Outro truque com clientes móveis é que eles geralmente perdem pacotes devido à força do sinal abaixo do ideal, em oposição ao congestionamento do link. Isso faz com que a pilha TCP / IP recue, para que as taxas de dados possam ser terríveis. BigIP pode ajudar situações como esta também, então pode valer a pena investigar.
Na frente do código-fonte aberto, você pode considerar o fronting com nginx ou outro proxy de E / S assíncrona para frontear o sistema e possivelmente armazenar um pouco essas conexões. Este é provavelmente um bom primeiro passo para tentar - você pode habilitar o buffer de proxy no nginx, então o efeito será descarregar as conexões para o nginx ao invés do apache e seus aplicativos dinâmicos por trás dele.