Nullus I've used this same approach in a wave-based TD game. So, in each level's event sheet I set the enemies that are allowed to spawn, the number of waves in that level, and the number of enemies per wave.
In the main event sheet, I have a few events that handle the actual spawning of enemies. So, it checks what enemies are allowed to spawn (based on the level's event sheet), then it spawns those enemies, adding 1 to a counter every time a permitted enemy is spawned (not-permitted enemies are simply destroyed off-screen, until a permitted one comes along).
When that counter reaches the previously determined permitted number of enemies (level's event sheet), it clears the board and adds 1 to the current wave count. When that wave count matches the previously determined number of waves (again, from the level's event sheet) and Enemies.Count=0, then the level is considered to be complete. Store and reset global variables, and jump to the next layout with its own event sheet.