Speaking of stacking, a possible workaround (and general upgrade), specifically for food would be to create object variants for food at different "bite remaining" levels. A good start would be same model, lower weight, to make opened containers distinguishable from unopened ones. I'm not sure how your game handles items, but a variant variable (from which weight and mesh/model are derived) would be perfect for this.
Let me know your thoughts, i'd love to contribute.