DialogFragment mostrado desde onContextItemSelected no sobrevive en Pausa / onResume

Tengo un DialogDragment que puedo mostrar de dos maneras:

1) Al tocar un elemento de ListView desde su OnItemClickListener

2) Activando el menú contextual de ListView y seleccionando un elemento del menú

Hacer # 1 funciona bien en todos los eventos del ciclo de vida, pero si lo invoco a través del # 2 y hago una pausa en la actividad (yendo a Inicio) y la reanudé a través del conmutador de tareas, ya no se muestra el diálogo. El fragmento está ahí, y puedo rotar el dispositivo y mostrar el diálogo.

Experimenté, y si pongo la presentación del DialogFragment en un Handler con un retraso de al menos 1/2 segundos, funciona.

El siguiente fragmento de código falla: muestra el cuadro de diálogo, pero luego la pausa / reanudación lo oculta:

public boolean onContextItemSelected(android.view.MenuItem item) {
    boolean consumed = false;

    switch (item.getItemId()) {
    case R.id.menu_item:
        showMyDialogFragment();
        consumed = true;
        break;
    }

    return consumed;
}

Así funciona el siguiente fragmento de código. Pausa / reanudar muestra el diálogo de nuevo correctamente:

public boolean onContextItemSelected(android.view.MenuItem item) {
    boolean consumed = false;

    switch (item.getItemId()) {
    case R.id.menu_item:
        new Handler().postDelayed(new Runnable() {
            public void run() {
                showMyDialogFragment();
            }
        }, 300);

        consumed = true;
        break;
    }

    return consumed;
}

Reemplazar el retardo de 300 ms de segundo con un retardo de 0 ms o 250 ms hace que se vuelva a interrumpir. Esta repetible el 100% del tiempo.

Obviamente, este es un terrible pirateo, empeorado por la constante que probablemente depende de la velocidad del dispositivo.

¿Alguien sabe por qué sucede esto y / u ofrece una mejor solución? Pasé horas en este tema y esto es lo mejor que pude encontrar.

Respuestas a la pregunta(2)

Su respuesta a la pregunta