I think your three-point hypothesis is sound. Here's the thing. TFP offers "recommended" levels. They're just that, recommendations. TFP numbers can't possibly account for every pool, in every part of the world, under every imaginable condition. So every pool is different, and unique. You start with TFP numbers and then adjust what works for you pool. Sometimes that means more or less FC, more or less CYA, etc.
And if skipping brushing or vacuuming for just a week is all it took for algae to take hold, then my pool would be more algae than water!!
You have either chronic algae, because you've never really cleared the pool of it for good, or your pool is being subjected to algae-prone conditions, or both. You probably need to up TFP's numbers some.
You did the SLAM. Was it clear of algae for a good while after that? Or did it come back relatively quickly?
How often do you let FC get low, and how close to minimum FC do you let it get?
So after this SLAM, this is what I'd do. First, make sure your SLAM is really done. Don't skimp. Don't cheat the SLAM, and even let it go on for a bit longer. Be sure you hunt down anywhere algae could be hiding and clean it out. Inside the skimmer. Behind the light. In a ladder or other fixture. Under the drain cover. Etc.
Once you are absolutely sure the algae is gone, start running the FC level a few points higher than you have been. My minimum is 3 and my target is 5. I treat my target as minimum and up the target, just to make sure I never get algae. So my "fake" minimum is 5, and my target is 6 or 7. If I get to 4, I treat that like a red alert and get my FC back above 5 immediately. So even though my real minimum is 3, I never let my FC get anywhere near it, and never below it. Well... almost never...
I've had algae exactly once since I took over the pool. A very slight tinge. I had a hot set of days, and a pool party and I got lazy testing for FC. That was the Perfect Storm. Once I saw the green, I tested and found I had accidentally let FC slip to 2 or 2-1/2. So see, even though my minimum is 3, I can't afford to let it get near 3. And I can't afford to be lazy about testing, especially when it's hot. So I keep my pool a point or two above TFP's recommended target level.
So that's how I do it...