Thank you, that's very kind of you to give the game such a positive review!
The game is a little clunky, I agree. It's very short and ends very abruptly due to time constraints. I wanted to include a lot more animations and what not, but the amount of sprite space in Pico-8 is very limited and the boss sprite took so much space with all the different parts that I simply had no room for more fancy sets with the amount of time I could put into the game.
You're almost correct with how the game works. When you miss a symbol, either due to a badly timed/wrong button press or letting a symbol slip all the way to the edge of the screen, you take a hit, get 2 whole seconds of invulnerability time where you can't mess up again or lose any hits. But you can still score correct button presses and rank up the hidden score value to progress towards the next stage in the "story."
The game tracks your score value, and if you let a symbol slip past the activation zone in the middle, you don't lose a hit unless your score is at the minimum value possible for the particular stage of the game you're in, you instead lose a point from your score. I thought this would be a fine buffer for if the game decides to get really annoying with the symbol randomisation. Gives the player a small safety net, especially since I didn't have the time to fix the overlapping symbols part you mentioned. Originally there were supposed to be symbols coming from either side of the screen in arranged sets, but since I'm such a code-newbie I didn't manage to get it work the way I wanted before the submission time was up.
In hindsight I should have probably picked up a different program for the game, such as GDevelop or maybe Godot. But I found Pico-8 very fun to work with. Especially since it contains all the tools you need to make sounds, music and art in one tiny package. Well, that and also Lua felt like the easiest language to try and learn as quickly as possible so I could participate.