Here are some reasons your transactions might be getting stuck.
1. You used too low a gas price.
This not only hangs up the low-gas transaction but every other transaction after it. Transactions have to be done in order, so if you send one with too little gas, everything after it (even those with plenty of gas) gets stuck behind the bad one.
The fix: You can re-send the stuck low-gas transaction at a higher price by clicking on the Metamask button that says, “Taking too long? Retry with a higher gas price here.” (For help choosing a good gas price, see my post on Gas Price and Gas Limit.)
Alternatively, you can go to MyEtherWallet and clear out all your bad transactions at once. (For directions on how to do this, search on YouTube for “CryptoKitties how to fix stuck transactions myetherwallet”.)
2. If your transaction keeps failing, it’s possible that either a) your gas LIMIT was set too low, or b) someone already bought the kitty you’re trying to get.
If your gas limit was set too low, Etherscan will say “[Out of gas]” and your Gas Used will be close to your Gas Limit. For example:
If someone already bought the kitty, Etherscan will fail after only a small amount of gas has been used. (Note: Sometimes the kitty will still show up in the Marketplace as “For Sale” even though it’s been bought. This is due to the network lagging behind the blockchain due to congestion.)