El scroll da ese tiempo porque Arduio no puede hacer varias cosas a la vez, asi que hasta que no haya terminado de hacer el scroll completo, es decir, mostrar todas las letras y que la última haya desparecido de la pantalla, entonces terminará la función de scroll y continuará ejecutando el código.
Para evitar eso, puedes hacer lo que he hecho en el código que te he puesto aquí abajo, meter las dos variables en una misma cadena de texto, entonces si que se mostrarán seguidas sin que tenga que desaparecer completamente la primera para que aparezca la segunda. (mira que buffer lo tengas creado con tamño suficiente para guardar la cadena que te he puesto).
También he comentado el código, aunque nunca he usado matrices de leds y al faltar parte del código hay cosas que no puedo asegurar que sean así, pero que supongo que lo serán más o menos. He modificado alguna cosa para que quede más claro el código, por lo que si he roto algo me dices
void scrollText(){
int x = X_MAX;
int charsFinished = 0;
char visible[11]; //vector con las letras que son visibles en la matriz
int i = 0;
unsigned long lastUpdate = 0;
for (int n = 0; n < 11; n++){ //llenamos el vector para poder empezar a escribir
visible[n] = banner[n];
}
//escribimos el finalizador de cadenas, para saber cuando se acaba el texto
visible[11]='\0';
while(charsFinished < strlen(banner)){ //mientras existan carácteres
while (millis() - lastUpdate < SCROLLSPEED); //esperamos a que pase el tiempo
//guardamos cuando hemos realizado la actualizacion
lastUpdate = millis();
//renderiza el texto y con 'x' aplica el desplazamiento
//de la letra para realizar el efecto de movimiento
drawString(x, 0, visible);
//actualizar la matriz de leds
disp.syncDisplays();
//desplazamos 1 led las letras
x--;
if (x <= -6){ //cuando acabemos una letra (¿letra = 7 leds?)
charsFinished++; //siguiente carácter
x = 0;
//quitamos el primer caracter y ponemos el siguiente al final
for (i=0;i<11;i++){
visible[i] = banner[i + charsFinished];
if (banner[i+charsFinished] == '\0') break;
}
visible[11]='\0';
}
//limpiamos la matriz de leds
disp.clear();
}
}
void loop() {
lm();
sprintf(banner,"Interior: %dC Exterior: %dC", temperatura, temperatura2);
scrollText();
}
Un saludo