Unless the attacker has over 50% of the hash power, there is no reason for him to not broadcast the block since his block chain is just going to be overtaken by the rest of miners.
Not needed. All you need is a node with an extremely good connection to many network peers.
When you find a block, you hold it and keep it to yourself. Next, when someone mines a block, your very well connected node will be one of the first to hear about it and you can broadcast your own block instead. If your block somehow gets propagated faster than the other pools (ie. Being directly connected to large mining pools), they will build on top of yours. If another block is found on top of yours, you don't lose anything.
That's a very interesting concept. But that strategy is very risky though. If the someone else broadcast his block and you aren't one of the first to hear about it, you could very well lose your block. I don't think that the big mining pools wouldn't be well connected. Also, you are wasting your hash power by not broadcasting and immediately mining the next block.