Where does this custom inventory data "live" at runtime?

Yep, this is how I handle things too, very neat stuff.

Where do you ended up ‘storing’ it? Is it attached to your player or just laying somewhere in the world?