From what I’ve experienced, stability wise: 0.21>0.4>0.3.
Obviously as the version numbers go up, so do added features. Eg, USB Ethernet enabled by default, Lima driver support, midi support, core management interface, skin select interface, adb push update, improved battery life, less over heating, unified updated directory structure, newer retroarch build, more standalone emulators per installed etc.
However for some people, 0.4 breaks a few compatibility issues. I haven’t experienced this personally. I do get less hangs, and far less of a need go hold down the power button to reset the device when it black screens; compared to 0.3. That was far too unstable for me.
I keep a 0.21 card separate for when I want to do specific things. They’re cheap as chips nowadays. Half of my bike cameras etc come with a 16GB card, that I inevitably update ASAP. You can probably find them second hand in your locals classified for free, or for the price of 2 coffees brand new at a store.
Basically, try if for yourself as opposed to going for what other people say. Chances are, most peoples opinions are going to be parroting what they read from someone else; fearing that someone will call them out for something that isn’t common agreed upon knowledge.
Again relating back to bikes, this is what happens with people all “agreeing” one brand is the superior tire maker. Everyone just assumes they’re going faster, simply because everyone told them they were; purely a placebo effect. (Continental GP4000 II fwiw - which from racing on, feel like absolute trash!) Anecdotal opinions are great, but treat them just as that; personal opinions.