I admittedly have little experience with serializedObject - I've always used Odin's SerializedScriptableObject and saved them to assets for things like this (and never had any performance issues, even with huge amounts of data/changes). My hunch is that trying to do all of these updates in OnInspectorGUI is causing the issue, due to Unity's poorly optimized editor code (I have run into similar performance issues with editor text in the past, though not to this degree).
Your new workaround component would work for editing the actual text, but changing other text properties would still lock up Unity, right? What if you made the actual text box its own separate editor that sits on top of the existing STM editor? That way you still have everything in one place but the main STM editor isn't bogged down by the actual text.