The ground-floor (grass/dirt/etc) is made of Unity Sprites, all on one Sprite Atlas and rendered together.
The layer that has all of the characters, trees, rocks, and all other things that you can go "behind" and "in front of" (using y-order sorting from top to bottom) is currently ALL Spine animations. Even things that aren't animated (that I would usually use a Unity Sprite for) like rocks, are simply a SkeletonAnimation with just a root bone and the image of the rock. I'm doing this to avoid a material/shader/texture swap every time I would have been going from rendering a Unity Sprite to rendering a SkeletonAnimation and vice-versa. So I guess the real question #1 is - does this make sense to do? Or is there some way that I could render Sprites and SkeletonAnimations back-and-forth a bunch of times, who share the same spine-generated TextureAtlas, and while sharing the same Material (which would need to be a URP-lit shader with normal map... just to make things more complicated haha)? If what I'm asking doesn't make sense let me know and I'll explain it better

So assuming that I do need to make a SkeletonAnimation for each of these things like rocks, etc, my question is this:
If I make a prefab that has a SkeletonAnimation in the parent gameobject, the thumbnail of the prefab is a preview of the SkeletonAnimation. However, if the SkeletonAnimation is in a child gameobject in the prefab, the prefab thumbnail is just the default blue-box. Is there a way to force the prefab to show a specific thing (the SkeletonAnimation preview) as the thumbnail? This would reaaaaally save time for us since we are talking about having a prefab for every single rock/fence/plant/etc in the game, haha. And each of the prefabs are essentially a SortingGroup on the parent gameobject, and then the SkeletonAnimation gameobject as a child. I tried googling for a while and couldn't find any information on setting the thumbnail image at all

2) I'm using URP with the 2D-renderer, with lights and normal maps. The lights are rendered "per Sorting Layer", meaning having a lot of Sorting Layers will slow things down significantly. We had been using like 25 Sorting Layers to keep things organized, and then found out about this afterward haha. So I'm now making an Editor Window that will give me a lot of organization control by setting the Order-In-Layer instead of using a bunch of separate Sorting Layers. So now that you know my life's story, lets get down to the question: When I select a gameobject with a SkeletonAnimation, and click a button in my custom Editor Window to change the "sortingOrder" of the Mesh Renderer of that SkeletonAnimation, it doesn't update the value in the Inspector. I have to "re-select" the gameobject with the SkeletonAnimation, and then it will update.
I had a similar issue with the SortingGroup component, and was able to get it to update instantly in the Inspector by calling this after I set it to the new "sortingOrder":
EditorUtility.SetDirty(sortingGroup);
I tried that with the skeletonAnimation, but it still doesn't update until you re-select it. Is there a function that I could call that would force it to refresh that value in the Inspector? ---
Looking into this for question 1 potentially: https://docs.unity3d.com/ScriptReference/AssetPreview.html