I think you've done a good job summarizing the issues but don't know that I'll have any epiphanies for you.
The stock issue is tricky, and I like your idea of just implementing a short cart duration for all users and using that to keep your products open for sale while not hosing any customers in checkout.
To go with your idea further (and beyond the scope of the current code), what if you implemented your own hook_cron in an inventory module with an extra cart product timer. For limited items, or even for all stocked items if you wish, set up the inventory decrement when an item goes in a user's cart but apply a timer. Have the cron periodically scan carts and simply remove any items in the table uc_cart_products that have been in carts for more than the designated duration. The easiest thing to do would be to give all products the same duration. This way you can handle inventory items separately from say a site membership... so you could leave that in a cart indefinitely if you while restocking the shelves with ABBA shirts more often. 
Of course, I don't know that this gives you any advantage on a site that only carries inventory controlled items.
And I will add in an $op for hook_cart_item that will let modules act on items as they're being destroyed from users' carts. Right now that's not possible. Simple fix in the morning. 


Joined: 08/07/2007