I have also thought about trying to decouple how spaces are associated per monitor, but couldn't figure out a way to interact with such a system that wouldn't leave my brain lost somewhere in even higher dimensional virtual spaces than it already is!
I noticed that my tab + window use started to balloon when it occurred to me that rather than dividing virtual desktops by task (one for dev, one for email/general browsing, etc) I could start moving browser windows from each instance to different locations based upon whatever I was doing (or for that matter, application-specific tasks). It's an exceedingly simplified (and admittedly very dumbed down) version of what it sounds like I understand you're doing, but the strange thing is that I found expanding your mental state across virtual desktops with the granularity of a browser instance/window/set of windows is an oddly freeing phenomenon.
It's a sense of euphoria I don't think the average Windows user will fully appreciate even with the integration of virtual desktops in Windows 10 since most are typically not familiar with it!
Rearrangement of the contents of virtual desktops and the desktops themselves is a topic in and of itself. The emacs world has a lot of tooling around this as well (see for example [0]), and the are a number of patterns/workflows for managing/composing/recombining workspaces that would surely translate other window managers since they deal with essentially the same issues.
For me the issue tends to be that it is easier and faster to create a new window of whatever kind wherever I am to answer the immediate need than to find the right one to answer it in, so I just open a new terminal window, jump to where I need to be, do what I need to do, and then ... forget to close it. Similar issue with dragging a browser window around with me wherever I go. One answer to this might be to slightly modify the behavior of the "open new instance of this program" key to act instead as "jump to most recent instance of this program, or if it does not exist, create it and jump to it."
One thing related to gc is that I started to work on but did not manage to complete, was the ability to snapshot the layout of all windows across all desktops in an x session. That would allow effective patterns to persist across restarts without the need to come up with a way to specify how things should be arranged. It would allow them to be arranged by whatever means, saved, and restored. I'll probably get back to it at some point.
As a note, anyone with the inclination can do this kind of thing in any language as long as it has xlib bindings.
I've hit close to 10k before when I felt like being incredibly mean to my browser by never closing anything I opened for about 3-4 months.