First I wrote this simple LISP routine:
(defun AnnoHatch (HATCHPATTERN HATCHANGLE IMPSCALE HATCHLAYER)
(setq CURDWGSCALE (getvar "CANNOSCALEVALUE"))
(setq HATCHSCALE (rtoS(/ IMPSCALE CURDWGSCALE)))
(setvar "CLAYER" HATCHLAYER)
(command "-bhatch" "P" HATCHPATTERN HATCHSCALE HATCHANGLE "AN" "Y")
What it does is scripts the command line version of the BHATCH command by using the pattern (HATCHPATTERN), angle (HATCHANGLE), scale (IMPSCALE), and layer (HATCHLAYER) specified for the arguments.
Then, instead of hatch tools, I created command tools that ran this routine with the appropriate argument values for the hatch I was trying to create:
Now I can use the tool palette to create hatches that are annotative and work for whatever scale I happen to be in.
If you have a better way...please share.