Efectivamente la activity entra en pausa, pero siempre termina la ejecución, aunque pongas código posterior al startActivity ese código se ejecutará, incluso aunque pongas un finish, lo que viene después del finish también se ejecutará. Y encima en este caso el dismiss del cuadro de dialogo está puesto antes del startActivity
¿Si quitas el startActivity el cuadro si se va?
En ese caso deberías de comprobar lo que hace la Activity en los métodos : onStart() y onResume(), porque en alguno de los 2 tiene que estar volviendo a crear el cuadro.