That's how I did it on Amethyst. Inner events are just regular notes with empty signatures. You can query them with regular filters. Becuase they are empty, even if there is a bug in the code and they end up being broadcasted, relays won't accept them.
Though if you have support for multiple accounts, you might want to make sure the decrypted conversations of one account are not mixed with another account.