Thanks. I wrote a quick version to query properties() but it’s around 3x slower than the version above.
% time osascript -l JavaScript get-tags-optimized.scpt
osascript -l JavaScript get-tags-optimized.scpt 0.05s user 0.02s system 32% cpu 0.228 total
% time osascript -l JavaScript get-tags-optimized2.scpt
osascript -l JavaScript get-tags-optimized2.scpt 0.38s user 0.02s system 65% cpu 0.616 total
So far it seems that the queries for just single properties work fastest