Your encryption key is stored ON-DEVICE. Not in “the cloud”.
In fact, they just had a big hullabalu about the encryption key being stored in plain-text on their desktop client, which they’ve now resolved.
They now use https://www.electronjs.org/docs/latest/api/safe-storage on the desktop client.
https://github.com/signalapp/SecureValueRecovery2
The method has changed since that blog post.
So you are correct about it being stored in the cloud - they also seem to take much better care of it there, but when it’s on someone elses server, your point stands - they can SAY they do anything. There’s no way to actually test that. So thanks for the correction.