Сам последнюю неделю озадачился похожим вопросом. Сначала отвечу на последний абзац: Шифрование происходит на устройствах, оно и называется end-to-end, сервер не учавствует в шифровании, и именно поэтому OTR, например, не позволяет общаться группой.
ChatSecure для андроида позволяет передавать файлы. Правда, интерфейс у него, конечно, аскетичный, магко говоря. Но он полностью удовлетворяет Вашим требованиям по функционалу.