Hola:
No entiendo bien la razón del error ya que hay una condición que no debería permitir bucles infinitos... pero al ponerlo a pelo, tal vez se me haya colado algo...
El hecho de que sean independientes da mucha complejidad al tema, pero podrías ayudarte de un array donde guardes los nombres de las tablas y se convertiría en una búsqueda bastante más sencilla...
Creas una variable del tipo array global:
var lasTablas = new Array();
Y por vada nueva tabla creada añadir su id al array:
lasTablas[lasTablas.length] = nuevoId;
Saludos