Hello,
When activity is paused, I would start a service which would start the required activity.
You would have to think about a global variable to check if the second activity should be started or not.
The delay is due to the device's speed. For some actions, like the Back key, perhaps could you block the keycode_back too when not needed (nothing to do with the Home key if your app is not the launcher).