Thanks for that! I haven't got Photoshop in front of me right now so I'll try them out later.
With Variation 1, my only concern is how they would work as part of an action, which is my main aim. Is it possible to automatically determine the dimensions of an image without manually looking it up, or more to the point, is it possible to create a gradient that will always match the dimensions of an image? I don't know of any way off the top of my head, so maybe that could be something that you do after running the action. In other words, for variation 1-A, run the action then create a gradient under it. For variation 1-B, run the action, choose 'Preserve Transparency', and draw your gradient on the same layer.
Variation 2 got me thinking about layer masks, which I think would be a good improvement. Some of the steps were really only concerned with preventing the whole scanline layer becoming opaque. I think I'll change that to filling the whole layer with a foreground color, adding a layer mask and filling that with the pattern instead. In fact, another variation is adding the layer mask to an existing layer, thus having the same effect as Variation 3.
Like I said, I'll test these out later, but I should have an updated version in the next day or so. Thanks for your input - I'll be sure to give you a mention!