jpettit,
Nice breakdown.
However I would prefer a simpler family hierarchy tree that ends in "Type"
(CAT-----INSTR----TYPE: List)
(Strings > Guitar > Acoustic: List )

and then use/apply separate filters that are not a part of the tree: feel, tempo(range), etc., but so that they "remember" (respect) prior selection. I believe it's called "nested" sorting.