My current organization is to use a regular folder hierarchy to represent a task hierarchy (typically a project level and one subordinate level of tasks) and a set of “status” tags (“high priority” and “archive” as well as the default “unread” and “flagged”).
A significant fraction of my records warrant at least two “keywords”. If I use tags for keywords, I can take advantage of the EF hierarchical tag feature to maintain one keyword hierarchy for each project.
Clairvoyance is a big help in this keywords-as-tags scheme. However, as new tasks are added, the clairvoyance set grows and gradually requires more keystrokes to select the desired tag.
If tags for archived tasks could be hidden (at user discretion) from the clairvoyance set, that would keep the clairvoyance set small and keystrokes at a minimum.