Ya analicé el código un largo rato. El body al ser 100% height overflow hidden, es lógico que haga este comportamiento, por lo que el fondo debería estar en el contenido que es el que tiene el overflow:auto.
Sin embargo, ni si quiera de esta forma actúa de la forma que creo debería
La única forma es ponerlo en el texto. Aunque no comprendo bien el por qué. ¿Alguien más sabría el motivo?