Many thanks for playing and leaving such a detailed comment :)
First of all, regarding the bug you noticed, I think I understand what my mistake is, and it's one I've been making for a long time. Indeed, to prevent the enemies from piling up, I used to move them one pixel apart with each tick. And on my side, everything seemed to be going well. There was sometimes a slight acceleration of the enemies, but nothing abnormal. Then when I read your comment, it clicked! I tried my game with another framerate mode that doesn't limit ticks and I got the bug you mentioned. In short, I modified my code so that it only triggers every 0.06 seconds (which is equivalent to 60fps for everyone). Logically, if you play it again, it should be fixed (I hope!).
As for balancing, I'm well aware that it's a subtle and difficult art :) I've done my best on a style of game I have no particular knowledge of. I have the impression that the game is difficult but far from impossible (but maybe that's just an impression). Personally, I'm now able to finish it by trying a bit of every style of skill combination (I'm well aware that, as a dev of the game, I'm by no means a representative player). But perhaps you'll find the game less unfair and frustrating without the bug.
In short, your comments are very positive for me, and very enriching. And I'm glad you've spent some time playing, despite the bugs and frustrations you've encountered.
Thanks again :D