I wonder what you're trying to do?
First: initcommandversion should only be used if you want to use a special (old) version of a command. As far as I know command versioning is only available for the commands CHAMFER, FILLET, LAYOUT, LENGTHEN, TRIM, COLOR and EXPLODE. (I know there are more versions of the MTEXT command, but you can only change it to "OLDEDITOR" and I can't imagine you want to do that)
Second:
(while (= (getvar "cmdactive") 1)(command pause))
can only be usefull before or after the MTEXT command, right?
This is how I would do it:
(defun c:test (/ th DM p1 rot)
(setq th 3.5); textsize
(command "._undo" "_be")
(setq DM (getvar "DYNMODE"))
; save layer and color here (omitted)
; set layer and color you want here (omitted)
(initget 1)(setq p1 (getpoint "\nSpecify start point of text: "))
(setq rot (getangle p1 "\nSpecify rotation angle <0>: "))
(if (null rot) (setq rot 0.0) (setq rot (* 180.0 (/ rot pi))))
(setvar "DYNMODE" (- 0 (abs DM))) ; Avoid problems with some graphics cards
(setvar "MTJIGSTRING" "Example")
(initdia) ; Dialog/ContextualTab !
(command "._mtext" p1 "j" "TL" "r" rot "h" th "L" "E" (strcat (rtos (getvar "TSPACEFAC")) "x") pause)
; restore saved layer and color here (omitted)
(setvar "DYNMODE" DM)
(command "._undo" "_end")
(princ)
)