@rysiek @agturcz Sounds like @snikket_im is your best bet, then. All Snikket clients have OMEMO enabled by default. And this way you actually can actually trust the operator, i.e. yourself, and control exactly what cloud services are used (including "none").
And Signal is seemingly not the perfect solution it's being made out to be, either.