What's your post-processing workflow? In case you're not already doing this, use two wash steps, a dirty and a clean- this is basically non-negotiable for getting fully-cleaned models that aren't tacky, imo. Get another wash tub and move the parts through two baths in sequence, ideally flipping or turning the parts in between to guarantee proper solvent through-flow all across the model; at the end of the day / after every few days, empty out the first 'dirty' wash and turn the 'clean' wash into your 'dirty', filling the other tub up with fresh IPA.
Also- many resins cure more effectively if shielded from the atmosphere, because oxygen from the air reacts with the photoinitiators in the resin when it's in its very reactive UV-excited state. This depletes the photoinitiators (which are supposed to react with the monomers and polymers in the resin, to help cross-link them into a solid mass) and leaves the part in a permanently 'half-cured' state that you can't fix. Nitrogen or a low vacuum are preferred where possible, but if you're on a budget, I found immersing parts in a transparent tub of water and curing that can get much better results than just curing in open air.
Also- 30 minutes sounds very long for a cure cycle for this kind of generic modelling resin, but I'm not sure what Phrozen recommends. Most of the hobbuy- resins I've worked with recommend a cure of less than 10 minutes, you don't get much benefit beyond that and it can increase embrittlement and warping. For example, Siraya Tech's Navy Grey Fast is their most popular product, and they recommend a post-processing cure time of 2 minutes:
https://siraya.tech/pages/fast Curing under water requires longer cure times, but not significantly more. IIRC my curing cycle for Siraya Tech Sculpt Ultra was 7 minutes on the curing turntable, flip the part in the water to better expose the underside, and run it for another 7. Without the water I believe my sweet spot was 6-8 minutes total.