Well, as we use the offline gateway to record transactions from office, the basket should be kept and if the payment is never received, we need to know it.
This works fine with Ogone : when a payment is never received for manual bank transfer, we mark it as refused and the system shows Denied within CB subs. Then we keep history of what happens for that customer.
This should work the same for Offline Gateway. Cannot you add a simple link under the "record offline payment" for "refuse transaction" ? so that it is marked as Denied and kept in the history ?