Isso acontece porque você tenta descartar recursos que foram descartados.
batch.dispose();
stage.dispose();
Do código-fonte da classe Stage
public void dispose () {
if (ownsBatch) batch.dispose();
}
Exceção de JVM será dada se seu lote for referência do SpriteBatch do Stage. (O ímpar é alto, raramente criamos um novo SpriteBatch se usarmos o Stage)
A solução? Chame dispose () uma vez na referência de stage ou spritebatch.