What does the decoy env look like on disk? Is it two separate file systems/DBs that are decrypted by different pins?
If so, a smart attacker is just going to insist you give them both pins, and keep coercing you to give up both.
I had a decoy env for a period app I wrote, and to solve that problem I just randomly generated a new in memory DB for any failed pins. On disk, it looked like just one encrypted DB. But generating random period data is easier than chat messages. And it has its own issues, where no matter what pin you put in, you get a result, so the attacker can just keep coercing you until they get what they think is a valid result.
Do you have any doco for how you have designed the at rest and e2e encryption?