I think the main issue I have with aiming is that the projectile seems to collide when I would have expected it had enough room to make it over/through. If you put more work into this, one potentially simple way to improve this would be to interrupt the aiming arm at the point where the projectile would collide if thrown at the current trajectory. That's a bit of work to compute the collision along the entire arc constantly, but it would definitely mean I know whether or not my shot is about to hit something unintended. Another approach would be to trim down the hitbox of the projectile so it doesn't clip so many corners.
As for the level design, I think the only major no-no I felt was when things would happen that I could not have predicted in any way. Like pushing a button and finding that an obstacle appeared and blocked my path, without me having any way to predict that this would happen. That design approach basically means you're forcing every player to restart at that point, and replay the level. A lot of people will feel that's cheap, and get frustrated. Better would be if the red obstacles that will appear are already visible in some way, so you could have predicted this might happen when pressing a button.