Many effects require multiple animations and multiple steps in between, so the only safe way to make effect queuing sane and working is to not use the queue in all inner animate calls and queue()/dequeue() yourself. Aaron and me tested this a lot back in time, and we almost banged our heads against the walls until we finally figured it out.