Para evitar que se quede esperando a cargar la imagen lo que podes hacer es detectar en donde se produce el error y cerrar el socket de conexión con el servidor web y el socket por el cual te comunicas con el navegador.
De esta forma el mozilla "se da cuenta de que ese objeto no va a llegar" y deja de esperarlo.
De todos modos lo ideal sería mandarle el tipo de error asociado para que en este caso por ejemplo le ponga una cruz a la imagen.
En cuanto a porque no te carga las imágenes primero fijate que las funciones que estas usando para pasar caracteres desde el servidor web al cliente no son strcpy o strlen, dado que te pueden generar problemas con caracteres \0.
Luego fijate que tamaño tiene el buffer con el que traes información; si vos estas cargando caracteres de un pedido de a pedazos y se los pasas al navegador de a pedazos capas que no te las reconoce. No creo porque a nosotros nos anda bien pero no probamos mucho tampoco con imágenes muy grandes.
Por último fijate si no te carga la imagen por algún error mientras se establece la conexión (que no puedas abrir un socket, leer, escribir etc.), se que parece muy bobo pero por lo que vi muy poca gente controla esto dado que tomaron como modelo a seguir el ejemplo subido por los docentes, y en este no se chequean este tipo de cosas.
Perdón si no te pude ayudar pero puede ser por mil cosas jaja.
Saludos Emiliano.