Bitcoin transactions reserve more coins than needed
It's due to confirmation times and there's nothing you can do about it. Until a payment confirms, its outputs are not spendable because you cannot be sure the payment will in fact confirm. This includes the "change" outputs from a transaction. You could try to keep a large pool of available unspent outputs available.

Update: The behavior you're describing is not unusual. Until a transaction gets included in a block, it's stuck at zero confirmations. Each payment you make takes one or more of your unspent outputs and consumes it, producing a new unspent output back to you for the "change".

Say you have two unspent outputs, one for 1 Bitcoin and one for 0.4 Bitcoins and you need to make a payment of 1.2 Bitcoins to someone. You make a payment that takes in both your unspent outputs, sends 1.2 Bitcoins to the recipient, and the remaining 0.2 Bitcoins back to you. At the moment, the only Bitcoins you have are that 0.2 Bitcoin "change" output, and it's not yet confirmed.