I see... right, a few things to keep in mind are... Super Text Mesh will only update its mesh every frame if it uses an animated text effect, or has the "force animation" boolean checked.
But I think in your unique case, mesh instancing per gameobject type might be something worth looking into. So... for each type of object, you can have a single STM object generate a mesh as a type of generator, instance the mesh produced by STM, and that object type would then know to just use that mesh. If it's low poly assets, you can probably go a step further and bake the text mesh into the lowpoly model's mesh to save on object count, too. If this works, having a script that updates the one shared mesh for a lowpoly object should be pretty efficient if text needs to be updated (localization, different messages, etc) vs having 36k live STM objects that need to be updated. If you're using a font that's marked as dynamic though, baked meshes would have to be rebuilt when OnFontTextureRebuilt() gets invoked by STM, though. So I'd recommend starting with a font with import settings set to something non-dynamic.
In this instance, animated effects would be much better to handle using a custom shader if needed.
The Update method does have a lot of editor-only code. One thing to watch out for is that Unity's inspector itself is pretty inefficient. You can sometimes get an editor performance hit by having an inspector open for an object with a lot of fields. (The TextArea field is especially inefficient (and lacking in features!)... I've actually told Unity about this pretty recently, but there's really no way for me to work around it)
Super Text Mesh was originally made before I was familiar with many good coding practices, but sometimes I get thanked for leaving some out... (Lots of users seem to like that I don't use a namespace, for instance) But if I ever get the time to do a huge update, there would be a lot of backend stuff that gets cleaned up. For the time being though, I'm comfortable enough with it to edit and fix whatever needs to be done. In the end, all that matters is that it works as you need it to, and that our games get completed!