It's hard to make a puzzle game that's balanced properly and that stays interesting over a large number of levels. And you, my friend, have managed to succeed in just that! You used every mechanic and edge case to its fullest to create consistently unique, interesting, and sometimes really challenging levels.
One thing that could improve user experience would be to let the player see the level first and then click a button to start the level. That might not be your intended gameplay experience, however.