Mais buffer não implica necessariamente mais velocidade. Mais buffer simplesmente implica mais buffer. Abaixo de um determinado valor, você verá um estouro, pois os aplicativos não podem necessariamente atender os dados recebidos com rapidez suficiente. Isso é ruim, mas no ponto em que há um buffer suficiente para o aplicativo atender a uma taxa razoável, mesmo no caso de um aumento ocasional no tráfego, qualquer outra coisa provavelmente será desperdiçada.
Se você for muito grande, estará colocando uma carga muito maior no kernel para localizar e alocar memória, o que, ironicamente, pode levar à perda de pacotes. Meu palpite é de que isso pode ser o que você está vendo, mas algumas outras métricas precisam ser confirmadas.
É provável que o número 2.5M venha das recomendações sobre configuração de valores rmem e wmem para TCP - em que a relação entre o dimensionamento da janela e as configurações de buffer pode ter efeitos significativos sob certas circunstâncias. Dito isto, TCP! = UDP - mas algumas pessoas supõem que, se ajudar o TCP, também ajudará o UDP. Você tem a informação empírica correta. Se eu fosse você, ficaria com o valor de 256K e ligaria mesmo.