[Fire Q&A, Help & Troubleshooting] jkchr1s:
I just got my Fire 5th gen today and ran the 5.0.1 update to get gapps working.

On the Fire TV, an app called FireStarter works around this by connecting to ADB as an "emulator" and detecting the home presses and hijacks them to launch his launcher.

xda link:

http://xdaforums.com/fire-tv/themes-apps/app-root-home-launcher-replacement-app-t3118135

github:

https://github.com/sphinx02/FireStarter

apk:

https://github.com/sphinx02/FireStarter/releases

Edit: After playing around with his code, I see that his "Fallback to Non-ADB Observation" is properly detecting home presses. The ADB detection modifications I made were in fact failing to connect as well, and it was falling back to the Non-ADB observer.

10-28 20:51:11.947 14642-15366/? D/de.belu.firestarter.observer.ForeGroundService: Received single home button click.
10-28 20:51:11.947 14642-15366/? D/de.belu.firestarter.observer.ForeGroundService: Single-click start package is: com.teslacoilsw.launcher
10-28 20:51:11.947 14642-15366/? D/de.belu.firestarter.tools.AppStarter: Stop watch thread
10-28 20:51:11.947 14642-15366/? D/de.belu.firestarter.tools.AppStarter: Watchthread was not alive, nothing to be done.
10-28 20:51:11.950 14642-15366/? D/de.belu.firestarter.tools.AppStarter: Starting launcher activity of package: com.teslacoilsw.launcher
10-28 20:51:11.951 460-475/? I/ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 pkg=com.teslacoilsw.launcher cmp=com.teslacoilsw.launcher/.NovaShortcutHandler} from uid 10026 on display 0
10-28 20:51:11.952 460-475/? W/ActivityManager: Activity start request from 10026 stopped
10-28 20:51:16.450 460-480/? W/ActivityManager: Input dispatching paused for current ActivityRecord: ActivityRecord{2f09bcdf u0 com.teslacoilsw.launcher/.NovaShortcutHandler t245}
10-28 20:51:16.450 460-480/? V/WindowManager: addAppToken: AppWindowToken{3d96b3f5 token=Token{322b8d2c ActivityRecord{2f09bcdf u0 com.teslacoilsw.launcher/.NovaShortcutHandler t245}}} to stack=1 task=245 at 0
10-28 20:51:16.497 460-460/? D/ProxyReceiver: received intent amazon.intent.action.TASK_SWITCHED
10-28 20:51:16.499 460-15368/? D/ProxyReceiver: firing intent with action amazon.intent.action.TASK_SWITCHED_CMS_PROXY by proxy
10-28 20:51:16.528 460-590/? I/ActivityManager: START u0 {act=android.intent.action.MAIN flg=0x20000 cmp=com.teslacoilsw.launcher/.NovaLauncher} from uid 10019 on display 0
10-28 20:51:16.540 460-1272/? W/ActivityManager: Finishing task with all activities already finished
10-28 20:51:16.540 460-1272/? W/ActivityManager: Duplicate finish request for ActivityRecord{2f09bcdf u0 com.teslacoilsw.launcher/.NovaShortcutHandler t245 f}

As you can see, his code is firing almost instantly from the home press. However, for some reason it is taking about 5 seconds to launch. I think this is interesting:

10-28 20:51:11.952 460-475/? W/ActivityManager: Activity start request from 10026 stopped

WTF, really? I can't figure out what is causing the delay... starting the activity from ANYWHERE else launches Nova instantly.

To try this yourself, grab the FireStarter APK. Once there, go to Settings, scroll down and change "Home Button Single Click" to your launcher of choice. Then fire up adb and watch logcat.

I'm at a loss as to what causes the delay. This is almost instantly capturing the home press event, but it's like the Amazon launcher knows and is stopping it.