Waze is using language models rather than grammars to the best of my knowledge.
Using optional repetitions is going to make responses slower, there’s no way around it because it’s a far bigger search space and finite state grammars are slower than probability models in pocketsphinx.
You can either use language models instead, or you can use grammars without optional repetitions for good performance (RuleORama will also improve performance, but it doesn’t support optional repetitions at all).
Having multiple commands in different sequences doesn’t create a requirement for repetitions per se, since multiple commands are received and understood in the course of continuous recognition under normal usage. Can you describe the types of different commands and series of commands you’d like to understand, with examples? Maybe I can help you construct a grammar that doesn’t rely on optional repetitions.