If the "{TXTSUBSTR}" token is given a negative Length, E.G. "{TXTSUBSTR:"Test":0:-1}" and used to write to the log, the command will run indefinitely and not produce output(the only indication it's running is a "Commands Running" warning when closing the "Edit a Profile" window).
However, if this same token is used to set a variable, E.G.
Set integer [Crash] value to the converted value of {TXTSUBSTR:"Test":0:-1}
VoiceAttack will freeze and run at 100% CPU(single core).
This does not occur when the start position is negative, nor does "{TXTPOS}" have the same issue. Perhaps a forgotten check on the last parameter of "{TXTSUBSTR}"?