Possible solution:
In order to create a 'pending' invoice, the payment method you use for the order must allow you to.
For that you need to add in the payment method's model this member:

protected $_canCapture = true;

You can add it right under

protected $_code = 'PAYMENT CODE HERE';

For example if you want to do this for Check/money order you need to add the line above in app/code/core/Mage/Payment/Model/Method/Checkmo.php

After this when you create an invoice you will have an option near the save button to set the invoice status. (see picture attached). To create a pending invoice select 'Not capture'.
If you want to mark it later as paid edit the invoice and between the buttons on to one called 'Capture' (see picture). Well you get the idea....

You know, if real accountants had been consulted on purchase order processing by the geeks who wrote this sorry stuff, it would not be necessary to tweak it like this. Obviously, the programmers who wrote this do not have to deal with invoicing. Since when is an invoice 'paid' just because it was printed or emailed?? How is a store owner expected to know what is due if all invoices are marked 'paid'?? Another downside to Magento....

I didn't try this before, but you can try to simulate how the invoice is created in the controller. Add some debug lines in the 'Mage_Adminhtml_Sales_Order_InvoiceController::saveAction' method, see what data is sent by POST and how the invoice is created and do the same in your custom code.

Help others

Let's help other less fortunate people.
A part of the money you pay for each Magento extension that you buy from from MageWorld through this link will be donated to the Hanoi Orphanage (Vietnam).
You will get awesome Magento extensions and the orphans will get a little "ray of sunshine" in their lives.
Everybody wins.