Yet another update. Still having difficulty ironing out that bug with the looping! It's bothering me. A lot.
Aside from that I've altered the ball's hangtime in the air. It's looking better, but I think it's still a little too much? I also think that now the ball drops around that first corner a little too fast. Arrrghh!! Am I never satisfied?! (The world: "no!")
Luckily it's a simple fix, just altering the slope of that first curve so it's a little shallower. I do feel that this is actually really, really helping - I'm far from confident, but I do feel I understand the fcurves a lot more than I did a week ago.
Just to talk a little about what I changed this time:
First thing, to get the nice overshoot at the top of the right side, I just brought the height of the curve a little above the position of the next keyframe. This gradual slope caused the ball to slow into a position slightly above the point reached by the next keyframe, then slowly dropped back down into it before continuing the movement. I also lessened the width of this curve on both sides, so that the ball wasn't hanging in the air quite so long before dropping back down.
The same principle applied for the overshoot on the left side; I dropped the curve a little lower than that keyframe. There's quite a sharp curve here, which shows the ball's acceleration to the bottom of the drop.
I lessened it slightly, but it's still a little too extreme. In retrospect I think that the problem with the glitchy loop is because I've put the overshoot in the wrong place. A better place to put it would be just before the last keyframe, as opposed to after the first. That way the ball can overshoot before the last keyframe, which will be identical to the first, allowing it to loop straight back to the exact same position and continue its drop. It just makes more sense that way (to me at least...)