En cuanto a la primera pregunta, el dismiss funciona perfectamente.
La segunda pregunta no he hecho nada especifico referente a eso. Solo le doy para atrás y ya esta.
Sinceramente no lo entiendo, si primero hago un dismiss el dialogo se cierra y luego hace lo que siga, da igual que sea un intent que sea lo que sea no?