This is why I love the blender community! I'm working on an animation where I need this exact thing and wasn't happy with my hand key framed animation. Was putting off learning geonodes, but then here you go sharing just what I need! Thanks!
Another way you can do it is by instancing a collection instead of a single object. This way you can individually give textures to the objects. This could help you when you want different variations of the same textures (like the coffee stain you were talking about). I just made a video of an alternitive way to do it. I also included a free link to the blend file in the comments of my video
This is really cool, keep up the good work! (I am definitely not your mom) (The statement in the first bracket is completely true) On a more serious note, I love this an will probably mess around if it when I get a chance.