Why is there a delay before an invoice is marked "ready_to_ship_?"

Before an invoice is completed the payment must receive the correct amount of confirmations on the blockchain. This is accomplished with the act of mining Bitcoin. Part of the mining process verifies that the transactions are consistent, come from a valid client, and don't contradict other transactions. This method prevents things like double spending or attempting to use counterfeit BTC.

Double-spending is the result of successfully sending some BTC more than once. Bitcoin protects against double spending by verifying each transaction added to the block chain to ensure that the inputs for the transaction had not previously already been spent.

When a Bitcoin transaction is made the authenticity has not yet been established. With Bitcoin's decentralized architecture, this consensus needs to form after your transaction gets included in a block and a chain of additional blocks extend from that. At any point in time there could be two or more solved blocks at the same level in the blockchain competing to win this consensus. At the time, there is no way to know which block will eventually attain consensus as being "the truth" and which blocks will lose support and become orphaned.

A Bitcoin exchange cannot be exposed to the risk of double spending. It will credit your account for the transfer of your funds only after it knows for sure "the truth", and thus it must ignore any blocks until they are part of the longest chain and have six or more confirmations.