Hi Mark! I hadn’t thought of using expressions to toggle the opacity of two layers of different blending modes, I agree that’s a little messy but it does sound like a workable solution.
You might want to play with the Compound Arithmetic effect, it performs some similar math to layer blending modes. If your two layers are the same size, you could put Compound Arithmetic on the bottom layer, set the top layer as your second source for the Compound Arithmetic effect, and then hide the top layer itself. You’re then able to keyframe the Operator property of the Compound Arithmetic effect on the bottom layer, which gives you access to blending mode-style operations like Multiply, Add, Darken, etc.
One thing to consider: the equivalent to the “Darken” blending mode is actually not the “Darken” Operator, it’s the “Minimum” Operator. Also, “Add” behaves differently, but Screen, Multiply, Overlay, etc should all work as intended.
I’m not sure this will work without precomping if you’ve got many layers in a stack you’re trying to affect all at once.