Actually, looking at your command again, you can also do a compare against "@@invalid", which will be the value of "Restart" in your command if anything but the phrases you've defined is spoken.
If you also have "Timeout" set to anything but 0, you'll want to check against "Not set" as well, as that will be the value of "Restart" if nothing is said before the timeout.
Do the variable name / token need to be unique for each command?
Not necessarily. Variables are global by default, so if you check the value in one command after setting it in another, the value will still be there, so that's something to watch out for.
The clean way to reuse variables that only need to exist for a given command is to use the "~" prefix, which will result in the variable being scoped to only that command, and to a specific running instance (I.E. if you use a variable with that prefix, running the same command multiple times simultaneously allows each instance of that command to have a different value assigned to that variable name).
More information on variable scope can be found in VoiceAttackHelp.pdf, under "Advanced Variable Control (Scope)".