I use a simple shared visualization of general location
I'm a huge fan of imagination and using theatre of the mind, but as you've noted it's incredibly hard for everyone to remember where they are and where others are in the scene.
Awhile ago, I had read through the 13th age rules and particularly liked how combat distances were handle. I took those ideas and drew up a quick and dirty system to help visualize what's going on at a very high level.
Turned out the quick system was a great solution for my group!
My approach to this begins with my interpretation of Theatre of the Mind. For me, this gives everyone an opportunity for increased narration without having to track specific battlemap positioning thereby opening up imagination with what's happening in the encounter itself
My experience has born this true, which is why I keep using it. When we go into this, the players seem to get more into the action and less into 'positioning'. This provides a strong inclination for working through strategies via narration rather than strategies via mechanical positioning.
It also means that players know where we are and they can introduce elements to the scene in their descriptions. If it's going too far, I'll say something - but generally I haven't seen any issues. This freedom to use their imagination results in much more interesting combats for my tables.
To do this, I separate out positioning into 4 basic elements:
- Melee
- Step outside Melee
- Double move/ranged positioning
- Interactions
We typically use Foundry for our virtual play and I just drew circles and labelled each circle with each of the above. PCs and NPCs start in whatever positions make sense for what kicked off combat. Often times, that's everyone in melee and then folks to start to move around.
But the joy of this is that's usable pretty much anywhere you can draw circles and write words. Please choose your media appropriately and legally.
The Buckets
Before I get into explaining the buckets, let me state that these are very soft buckets. They generally can work with most situations, but as a DM, I need to be aware of things that players may do that need special dispensation and then apply it accordingly.
Melee
Kind of a catch-all here for anyone in melee range. This may create a situation where you've got a LOT of characters in one place. If you use the optional advantage rules (such as flanking), you may need to think about when to apply them and when not to in what seems fair. Of course, explaining why you are giving or not giving advantage is something that you should be explicit about to the group.
Step Outside Melee
This one is a bit more confusing. It's generally for anywhere from 5' outside melee to 30ish'. Basically anyone can still be caught back up in melee by a quick movement either back in or being chased back in. If you need to group people within melee to subgroups, that's fine. Key here is using these simple circles to make it clear where everyone is from a relative standpoint.
Double Move/ Ranged
Here is the place for being way outside melee. This may be for ranged characters to do their damage or simply someone trying to stay out of the fracas. It will take a double move to get here unless magic or some other ability is used.
I currently have a character who is a Tabaxi and accounting for some of their special movement is a consideration I need to make at times. But it's always a discussion with the player(s).
Interactions
This last bucket is for things beyond combat. Maybe they need to be rescuing someone. Or trying to figure out a puzzle. Or really anything else that's not part of the combat, but is part of the encounter that characters need to be participating in. I don't always use this circle, but it's a nice extra one to help remind players that KILL 'EM ALL isn't always the solution.
How I do this in practice
Visually, I've taken a very simple approach to this. I took an existing map we were using and just drew four circles on it and labeled them. At the start of combat, I'll place the tokens we have in each circle where it makes sense to begin.
I also like to keep the buckets large enough visually so I can use the interior space to create subgroups. There may be melee combatants who are not close to other melee combatants, and this gives me the freedom keep them separated. I can also place tokens either on the near edge or the far edge from the previous circle to help remind me if someone is trying to get away to double-move/ranged or if they're just a step out.
VTT and other platforms
Pretty much any VTT can likely do this, but really any place you can draw circles and put labels and 'tokens' of some sort to move around is all you need. You could even do a screenshare on discord with a spreadsheet and use the columns as the buckets. Even MS Paint would be a fine solution!