How do apps [...] compare to using a hardware auth token [...]?
At first sight, they don't differ too far. Well in both cases you have some other device which does an additional cryptographic verification step for you. But one important difference is the complexity of the system (the whole software on that device).
On a smart phone there is a heck lot of interacting pieces of software form different vendors (apps), while a dedicate authentication token is there far simpler since the serve just this single one purpose. Therefore, the chance and surface for vulnerability is generally lower for the simpler system.
Another difference would be the actual algorithm used for that authentication step. But this does not depend anyhow on the hardware. However, apps tend to be simpler e.g. Time-based One-Time Password generators, while the others are usually more sophisticate about their sole purpose, for instance U2F uses challenge based Public key cryptography. BTW that's one reason why using U2F requires also support from the browser to forward the challenge to the U2F stick.
How real is the possibility of an Android system being hijacked [...] and [...] secret keys being extracted?
Well it is real that you can hack a mobile phone like every other computer system and gain root access to it. If a key can be extracted, depends on how the app stores that secret. But since it has to save it and since there is no real private memory on Android devices (AFAIK), an attacker which gained root access could copy the key.
[...] are there any other advantages to app-based 2FA?
On a plain security level, I don't believe there is any advantage for smart phones vs. dedicated hardware. But apps are usually far easier to install and setup than those specialized systems. And a system which is to complicated to be used by an average user, doesn't improve anything in a real world. Also notice that those special systems need usually additional service provider support, an if a technique is to complicated to be implemented or hardly used, the best user can't do anything without supported services.
Given that [...] you authenticate a request or login session in real-time, is it not vulnerable to real-time authentication replay phishing attacks?
As far as I can see it, you can generally do a Man-in-the-middle attack and hijack the authenticated session. But that's what SSL-certificates intend to prevent.
And it is accompanied by encryption which limit the usability of simple replay attacks. A part form SSL, replay on time-based tokens is a possibility. However, a service provider could enlist the successfully used tokens and prevent replays. Still, if the attacker were fast enough he would be the one having succeed.