Purpose of outer key in HMAC From what I know, the HMAC constructions has two strength:


It's resistant to length extensions
Since the key is consumed before the message, the attacker does not know the initial state, preventing simple collision attacks.


But the simple construction $ \mathrm{Hash}(\mathrm{Hash}(\mathrm{key} ∥ \mathrm{message})) $ would offer those properties too.

HMAC on the other hand uses the more complicated construction $ \mathrm{Hash}((\mathrm{key} ⊕ \mathrm{opad}) ∥ \mathrm{Hash}((\mathrm{key} ⊕ \mathrm{ipad}) ∥ \mathrm{message})) $. I assume the more complicated construction of HMAC is required for some security proof, but I don't immediately see why.

For SHA-3 candidates, Hash(key||message) is claimed to be secure, since they're resistant to length extensions, without consuming the key twice. I believe Skein even has some security proof for a very similar mode.

So why does HMAC need to inject the key twice?
You're missing the most important strength of HMAC: it comes with a proof of security (under some plausible assumptions).  The outer key plays an important role in the proofs.  The best place to learn more is to read the HMAC papers:


Message authentication using hash functions: The HMAC construction, Mihir Bellare, Ran Canetti, Hugo Kawczyk, CryptoBytes Spring 1996.
Keying hash functions for message authentication, Mihir Bellare, Ran Canetti, Hugo Kawczyk, CRYPTO '96.


In particular, it is very important for their proof that the outer function be keyed.  In your scheme, the outer function is not keyed, so their proof of security will not apply.

As they explain in the paper, the role of the inner function is to provide collision-resistance (to compress a long message down to a short fingerprint, in a way so that someone who does not know the key cannot find a pair of messages with the same fingerprint), and the role of the outer function is to act as a message authentication code on this fingerprint.  Their security proofs show that if the inner and outer functions each correctly implement their roles, then the combination (HMAC) will be a secure message authentication code.  Because the outer function needs to be a secure message authentication code, that means the outer function needs to be keyed for their proof methodology to apply.

Read the papers.  They are surprisingly readable, for a theoretical piece of work.