Heh, I might have an answer that solves all problems except a steady miner income, as pools aren't going to work.
I have said that this can be done purely with MNs but objections about reliability and the need for a physically separate network have been voiced, so:
Each block
MNs choose a subset of miners. Only those assigned miners out of all connected miners validate transactions for that block. All mining logic is the same, just carried out by that subset. Plus a control group or three for extra security.
Furthermore,
all connected wallets with a unique IP address are miners. (To avoid people firing up ten thousand wallets each.) And no expensive hardware or the ability to pay running costs are needed because there's no hardware arms race any more. All connected wallets are chosen amongst each block, The chosen subset does what miners usually do, but without the need for megawatts, bake that block and distribute to all. Next block, new subset, etc.
We would have
1. Near perfect decentralisation of mining.
2. Blockchain security on a par with IX and DS security. Even better in fact as hopefully there will be more many users/miners than Masternodes.
3. Inherently higher tx capacity as it should be faster to achieve consensus among a smaller set of nodes.
4. No wasteful make-work.
5. Separation of MNs and mining.
6. No hashrate fluctuations, as there wouldn't be any hashrate, so currency emission would be perfectly predictable.
7. Peace on Earth.
Now, tell me why this wouldn't be awesome.
edit: solved the miner income problem too - it could work the same way as MN payments, on a FIFO rolling basis. Again, Evan has already written the code for this...
8. Steady and predictable miner income.