I can’t decide whether to use NIP-117 or your approach for the double ratchet until you publish your own NIP.
Discussion
NIP-117 reimplements the Double Ratchet algorithm using Nostr’s secp256k1 algorithm.
Keychat uses the open-source libsignal library directly; we believe this is the simplest, most reliable, and secure approach.