In the first versions I was simply waiting about a second between commands. Of course, this was very slow.
Then, I was using *OPC?. I guess my scripts published on github are still using OPC query. For big data transfers, OPC doesn't help, you must check that all the expected data has arrived before sending another command.
Later, I stopped using Telnet, and open a TCP socket instead. Also I start looking for errors too, not only for the completeness of SCPI command, but I bumped into some firmware bugs that make my DS1054Z to freeze any LXI communication until the next power cycle, so these changes are not published yet on my github scripts. Since the actual scripts cover my needs, I didn't spent more time for improvements.
So far, yes, it works, but I won't use Rigol for life support equipment any time soon.