#3 En el caso de Signal (El protocolo) Aunque el usuario del otro extremo no esté conectado, se seguirá enviando de forma segura el mensaje cuando este último se conecte. Si quieres información más técnica de cómo funciona el protocolo, puedo pasarte un artículo que escribí al respecto.
#5 Pero para que no pase por ningún servidor deberían ser conexiones peer to peer, y tendrías el mismo problema, ambos tienen que estar online siempre. Buscando ahora un poco acabo de encontrar esta app, que parece sí es Peer-to-Peer (github.com/Bitmessage/PyBitmessage)
#6 Yo no he entrado en los detalles técnicos de la conexión. Lo más relevante para un servicio de mensajería es que cuando el remitente envía un mensaje el destinatario lo reciba, el hecho que sea directo entre dispositivos o haya servidores intermedios es una herramienta para ese fin pero no un objetivo en sí mismo.
Lo cual puede bien ser nunca.
Lo importante es que el mensaje llegue al destinatario, no que llegue a unos servidores intermedios u otro almacenamiento.