I have been thinking about making new BitMinter blocks available through the web service with long polling, to get around blocks having to go through the peer-to-peer network to reach other pools. That could also be a good way to get the necessary data to start mining before bitcoind does its checks, like you suggest. Doesn't have to be long polling, btw.
If most pools would get blocks directly from each other without going through bitcoind and if they start mining after only minimal checks like you suggest, then that might get rid of most orphans. No X number of nodes to propagate through, almost no verification = near instant block propagation as far as mining is concerned.
You are right that pools are unlikely to make invalid blocks. And you can check the previous block hash (from the block header), to ensure you don't accidentally help in a 51% attack.
Like you said, start mining after a quick check like that. Start mining a 1-tx block on top of that new block, maybe with a LP signal. Possibly you could include txes if you can be sure which ones would be valid (would take some effort). Meanwhile you can submit the block to your own bitcoind for full verification. If it checks out, start mining on top of it with full transactions. If it doesn't show as the top block in bitcoind then either it was invalid or another block got there first. Either way, start mining on whatever bitcoind says is the top block on the main chain.