I think that there are really two separate things that are being conflated when they are both just called “tags”. The way I envision it, there is “what am I doing”, and “what describes the current state”. I’d like to call only the second “tags”, and give the first another name (like “category”).
The difference between the two is something like noun vs adjective, or verb vs adverb.
For instance, a ping right now would have the category “writing”, and tags including “listening-to-music” and “drinking-coffee”. Writing (this reply) is the main thing I’m doing, but there are additional things that describe my current state.
This more or less is the same as what you were saying about dividing tags into two disjoint sets. I too find it a bit dissatisfying, and I think what I’d want is if TagTime supported this distinction natively. The reason I find it dissatisfying, I think, is because it’s forcing two separate things into what TagTime considers one concept (tags). If TagTime’s prompted you not for just generic “tags”, but for a (single, mandatory) category and optionally also descriptive tags, I think it would be a much better conceptual fit.
(Actually, what I’d really like is hierarchical categories. So for instance “writing>beeminder-forum”, “writing>blog”, etc. Within “writing” all the sub-categories would add up to 100%, then at the top level “writing” and all the rest would themselves add up to 100%, etc. This too can be simulated, I guess, under the current setup with tags, it’s just a bit clunky to do.)
That said, there is a different possible approach: trying to zoom in as much as possible on the very split second when the ping occurred. If in that second my finger was hitting the keyboard, then the tag is “writing”, if I was sipping coffee then the tag is “drinking-coffee”, etc. I like that less, because I’m no less in the process of drinking coffee when I’m holding the cup and about to take a sip than when I’m actually sipping, but that is a possible approach, and done properly it can probably eliminate the concept of ambient tags as distinct from categories of activity.