Eu percebi que era de fato o driver rtl8187 que estava modificando o campo de duração. O motorista estava calculando a duração e substituindo minha duração personalizada pela calculada. Eu tive que editar o código do driver e recompilá-lo para transmitir o quadro 802.11 bruto como eu queria. Depois que o código do driver foi modificado, qualquer um dos utilitários mencionados na pergunta funcionou para a transmissão.