No entiendo porque hay un fadeIn() en el ajaxStop(), en todo caso seria un fadeOut, para hacer que el cuadro de "Enviado" desaparezca.
Si lo planteas de la segunda forma que te indique, tendras siempre visible el contenido, y cuando hagas una nueva llamada a ajax, se pondra el texto de "Enviando", cuando se carge el contenido, desaparece y se cambia por el contenido, asi todas las veces que hagas una llamada a ajax.
De todos modos, si no quieres tocar eso y seguir con el planteamiento que tienes (aunque sigo pensando que el otro metodo es mejor, pues el texto solo aparece el tiempo que debe aparecer, si pones que tarde 30 segundos, aunque el contenido se haya cargado, seguira apareciendo el mensaje de "ENVIANDO" durante esos 30 segundos.. y por no decir, si la aplicacion se pausa, mientras aparece este mensaje [es decir que no se carge el contenido o no sea acesible hasta que "ENVIANDO" desaparezca, en cuyo caso me parece que haces sufrir a los usuarios innecesariamente), para hacer un temporizado, te recomiendo que uses setTimeOut.
Código HTML:
ajaxStop(function() {
setTimeout(function(){
$('#result').hide(); //Primero escondemos el contenedor
$('#result').text('ENVIANDO...'); //Cambiamos el texto
}, 30000); //1seg = 1000ms
}
Pongo que primero se oculte el contenedor, para que no aparezca de nuevo en la pantalla el mensaje, luego añadiriamos el mensaje.
Buena suerte con el proyecto, espero que te sirva la ayuda.