Sorry for DP'ing, I hadn't really looked at this before.
Why not just have something in scenario 1 that writes to file, and then have scenario 2 read from that file? This could have a lot more implications than just unlocking new scenarios, like having something you did in one scenario affect something in a later scenario, or branching scenarios based on the previous outcome. Maybe some psuedocode will demonstrate what I mean.
I think this is a very good idea though, actually, I think the posted pseudocode is rather limmited. It kinda looks like in all cases it just boils down to whether or not you will be allowed to play the "new" scenario or not.
But his could actually go much further, like "moving" some sort of game-state from scenario1 to scenario2.
For example, in omega's Labyrinth, it could be used to determine which of the four heroes was still alive from one stage to the next and not bring back those who had already been killed.
This doesn't apply only to fixed-number-of-units scenarios such as that one, it could be used in more "common" scenarios in which you would not only have to beat the oponent but also make sure you still had enough "firepower" to take on the next scenario.
On the other hand, on the first scenario the "foe" might actually be two allied foes (same team) and the winning-condition to beat just one of them. The state of the other foe might carry on to the following scenario too. On the same scenario1 case, the fact the secondary foe was still alive or not might actually be used to choose alternate scenario2 scenarios (say scenario2a and scenario2b).
Still another option would be for you to have your own allied player, and whether it was still standing or not when you beat the foes could have an impact on how the next scenario would be laid out too.
The possibilities should be limmited only by what the implemented Lua allows you.