Spine's Json and Binary and Unity's YAML are serialization types, and the process of reading them is all deserialization.
Binary is several times faster than json though, since it doesn't have to parse strings for everything.
2 seconds for all your jsons? That's not so bad. If it's just 1 json, something weird is going on.
If you want to try a json-to-scriptableobject converter, you certainly could.
But I think binary would still be several times faster than that, especially since spine-unity doesn't use ScriptableObjects for its core classes (Spine.Animation, Spine.Skeleton, Spine.SkeletonData, etc...).
Some users have successfully put Spine loading into threads though they mentioned some parts aren't threadsafe. That sort of implementation is heavily dependent on how users are using threads so we can't just implement that for everyone.