La actividad de Android no se muestra cuando la pantalla está activada y la pantalla de bloqueo no se deshabilita

tengo unBroadcastReceiver que comienza unActivity. Si elActivity se inicia mientras la pantalla está encendida, se muestra y todo está bien. Sin embargo, en los dispositivos ICS y JB (no he probado GB o HC pero el problema no existe con Froyo) si elActivity se inicia mientras la pantalla está apagada, la pantalla de bloqueo no está deshabilitada y la actividad no se muestra cuando el teléfono está desbloqueado (ya sea desbloqueando manualmente o con el código que puse para los dispositivos posteriores a Froyo).

¿Por qué, al menos en los dispositivos ICS y JB, la pantalla de bloqueo no se deshabilita sin el código mencionado a continuación, y por qué la actividad no se muestra si la pantalla estaba apagada cuandoActivity ¿empezó?

Aquí está el código:

En elBroadcastReceiver:

Intent alarmAlert = new Intent(context, AlarmGoneOffActivity.class);
alarmAlert.putExtra(MyAlarmManager.ALARM_NUM_ID, alarm.ID);
alarmAlert.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | 
                    Intent.FLAG_ACTIVITY_NO_USER_ACTION);
context.startActivity(alarmAlert);

EnAlarmGoneOffActivity.onCreate():

setContentView(R.layout.alarm_gone_off);

final Window win = getWindow();
win.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN | 
             WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | 
             WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | 
             WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON,
             WindowManager.LayoutParams.FLAG_FULLSCREEN | 
             WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | 
             WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | 
             WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
}

//so far all of my post froyo devices (ICS and JB no more GB)
// don't bypass the lockscreen unless we use this
if(Build.VERSION.SDK_INT > Build.VERSION_CODES.FROYO) {
    KeyguardManager  myKeyGuard = 
                    (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE);
    KeyguardLock myLock = myKeyGuard.newKeyguardLock("ShabbosAlarm");
    myLock.disableKeyguard();
}

Editar: Realmente preferiría no usarKeyguardLock.disableKeyguard() porque hace que el teclado se desactive hastaKeyguardLock.reenableKeyguard() lo cual es inconveniente. ¿Alguna solución?

Edit2: Ahora puedo confirmar que el problema solo existe en ICS y superiores. ¿Se ha cambiado algo que impide que se desactive el teclado? E incluso si hubiera, ¿por qué es miActivity ¿No aparece cuando la pantalla se desbloquea manualmente?