Have you pulled the recoil/action spring and cleaned that and it's tube? That is a common symptom of that part getting bound up by debris and residue, especially if the original factory grease was not removed. I spray it down good with non-chlorinated brake/carb cleaner followed with a wire brush and then flushed out with more cleaner. If the interior looks to still be rough I'll chuck the brush and rod on a drill to work over the inside. If that doesn't do it, then add steel wool to the brush and continue with the brush and drill. After it is clean, I'll run a patch lubed with CLP, 0w20 synthetic motor oil, or other light oil to protect the metal. I'll also lube the spring with the same product.
Before replacing the spring, I might try to stretch it a little to add a little more tension if it's not my gun and I am trying to correct a problem in the field but for myself I generally replace the spring if it is to that point. I have found poor cycling to be more a lube/cleaning issue than spring. One time I found the problem to be ammo related but that was only one time.