Good points, but the architecture is a bit different. It's not two separate encrypted files — from the outside there's no indication there are two PINs at all. The decoy environment looks like a fully functional account: its own chats, groups, contacts, message history. The attacker doesn't know there's a second layer because nothing tells them the first layer is a decoy.
Your approach of generating a random DB for any wrong PIN is interesting too, but it has a different problem: there's no "correct" result, any PIN "works", and a paranoid attacker can figure that out. Here the decoy environment is convincing precisely because it's a real-looking account, not a placeholder.
On encryption: AES-256-GCM, keys derived via HKDF-SHA256 with salt. The code is fully open source on GitHub — that is the documentation. Separate security docs don't make sense for me to write right now, but if the project grows — definitely yes.