It looks like Hatch prompts have changed since my 2004 -- I don't have a Properties option in the initial prompt in "plain" Hatch, only in Bhatch, but I assume they've been merged under the Hatch command name [similar to the way the Dtext command used to be different from the Text command long ago, but now Text works the way Dtext used to]. In this case, that merger requires more code from you -- I can do the same thing this way:
(command "HATCH" "Solid" "Last" "")
In any case, you shouldn't need the hyphen to suppress the dialog box, when inside a Lisp (command) function.
Here's another little code-reducing trick -- you can string together more than one command within the same (command) function:
(defun hatchedrectdraw1 (pt1 pt2); Draw a hatched rectangle between pt1 and pt2 (opposite corners)
Think of (command) not as a function that lets you use an AutoCAD command, but rather a function that gets you into the Command: prompt line, where you can stay as long as you keep giving it valid input.
[With a large number of operations strung together like that, it should speed things up, however slightly, by not repeatedly closing (command) functions and getting back into new ones. But you'd never notice that difference in a case like this.]