On a cursory glance, this looks rather quite a bit like a Noise [1] pattern. One rather nice aspect of Noise is that there is a good reference chart for which security properties one should expect from different combinations - saving time on proofs.
I used this (and the NNpsk0 handshake [2]) as the basis for an E2EE chat app.