You would want to create a custom implementation of the ShoppingCartInfoProvider and overwrite the method "SetOrderInternal." Now note that this runs whenever an order is Created, or updated. The below may work, you would have to test it.
[assembly: RegisterCustomProvider(typeof(CustomShoppingCartInfoProvider))]
/// <summary>
/// Summary description for CustomShoppingCartInfoProvider
/// </summary>
public class CustomShoppingCartInfoProvider : ShoppingCartInfoProvider
{
protected override void SetOrderInternal(ShoppingCartInfo cartObj, bool generateInvoice)
{
// This actually creats/modifies the order
base.SetOrderInternal(cartObj, generateInvoice);
// Grab any newly created orders that are set to paid and unset it.
if((cartObj.Order.OrderLastModified - cartObj.Order.OrderDate).Seconds < 5 && cartObj.Order.OrderIsPaid)
{
cartObj.Order.OrderIsPaid = false;
OrderInfoProvider.SetOrderInfo(cartObj.Order);
}
}
}