"Add a static composer into the HTML" <- This seems like something can be done with SSR?
"For faster navigations, we kept the composer mounted between conversations" <- Your SPA should cache this between pages, why fetching it every time? Or you need better routing for your react components.
"cheap first-character check before the regex" <- Should we cache compiled Regex instead?
I think even 1.3 sec to load the front page is unacceptable. Something need to be reworked from basics (SSR, chunk-based rendering) to solve the problem. Focusing on invidual benchmarks may miss the opportunity.