So after nearly breaking my computer, I’ve found a workaround — probably not the ideal one
It appears that when clicking Reply inside the Full App Embed, the composer actually opens correctly in the DOM (#reply-control.open), but for some reason it remains display: none.
I confirmed this in the browser console: the composer was present, but its computed display value was “none”. Manually running:
This seems to fix it completely, and I’ve limited the workaround to embed-mode so it doesn’t affect the normal Discourse interface.
Obviously this probably isn’t the ideal long-term solution, but hopefully this helps identify what is causing the open composer to remain display: none in the Full App Embed.