La presentación del dialogo y el toast están en el mismo hilo. Y Android no va a pintar la pantalla hasta que el onClick termine (porque está en el mismo hilo que el onDraw), así que por eso se muestran los 2 al mismo tiempo.
¿Cómo solucionarlo?
Poniendo todo el código que va después de "dialogo()" dentro de "hilo". Así lo que ocurre es que se muestra dialogo, se inicia el hilo, onClick termina, se pinta el ProgressDialog y ya a los 2 segundos se muestra el toast y el ProgressDialog se quita.