Man, that is great. I thought that maybe some RNG would fit well cause in the end was more trying to remember the order where each wave was coming from, but you have to test it to see, you may have to dynamically generate levels in order to guarantee that waves could arrive at any order and still be beaten.
One minor thing is that if you move to quickly, it may get into some bugs, like an enemy escaping a hit or getting out of the blue marking.