I use paint roller heads. The kind with only one open end. They're cheap and durable, and when one gets too ratty I just throw it away.
Unlike the rammer and worm which are used for every loading/firing, the sponge I display with my cannon is just that, a display. It is, of course, fully functional and would work fine. But it's kept clean and dry.
The sponges that I actually use are attached to a shortened aluminum shotgun cleaning rod. Not very authentic, I know, but damn near indestructible and the heads can be swapped (screw off a wet one, screw on a dry one) in the field. And it breaks down small enough to fit in my tool bag. The wet/dirty heads can be put in a zip-lock bag until they can be washed.
I use the same rod for cleaning, but with different heads. The ones I use in the field fill the bore but aren't that tight. The ones I use for cleaning are very tight and will only fit in the bore when completely saturated with soapy water. I also have a sponge rubber head I use to oil the bore after cleaning.
How do I fit a paint roller head to an aluminum cleaning rod you ask? I twist a shotgun bore brush up inside it.
The smaller rollers I use all fit either a 12 or 20 gauge bronze cleaning brush, depending on what size tube they have inside. The brushes are very tight inside the roller tube and will stay put even through vigorous swabbing. But they can be twisted back out out and reused in another roller (at least a couple of times).
This won't work with larger bores that need a bigger roller, and even the bigger rollers only get so large. But there are a lot more options with the bigger guns. Tube socks, furry fabrics, carpet remnants, etc. I've found that making good tools that function correctly (and tolerate a little abuse) gets more difficult as the bore diameter decreases.