The trickery is at the bottom of the puzzle, with those red and green blocks. The cyan blocks can only be cleared if they fall at roughly the same time, so the trick is getting the chains that hold those blocks up to end simultaneously. There's a lot more I can do with this idea of having things clear at precise moments to make time-sensitive things happen. At the moment, I can only think of one other puzzle with time sensitivity like this one, and that doesn't have this same idea of trying to time two events in the same way as this one (that one is more "How can I get this one chain to end as early as possible so this other one can happen?").
At one point while making this puzzle, I had the streams have to do some crazy criss-crossing and overlapping, but that was lost at one point for some reason or another. I'll definitely be fiddling around with it more in the future, though.