I think probably you do need at least some of the delays, but it might be worth trying without.
Ahh, looking at that code again, it seems like those U8G_ESC_DLY/etc macros are actually interpreted by another command u8g_WriteEscSeqP. Rather then reimplementing u8g_WriteEscSeqP, it's probably easier to just unroll everything and nest timeouts where needed as you say.
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
I think probably you do need at least some of the delays, but it might be worth trying without.
Ahh, looking at that code again, it seems like those
U8G_ESC_DLY
/etc macros are actually interpreted by another commandu8g_WriteEscSeqP
. Rather then reimplementingu8g_WriteEscSeqP
, it's probably easier to just unroll everything and nest timeouts where needed as you say.