Queues: First of all, they're handled on the 'other' side. Your queue position might increase because of several reasons, for example others in the queue taking advantage because asking for a high(er) priority shared file. The reask interval should not be decreased because it could cause you being blocked on the other side. There were malicious clients that tried to gain advantage in the queue by frequent reasking, therefore a minimum interval is now enforced.
The drop in the queue position from '<many>' to 'connected' also may be caused by several reasons, neither of which we can make anything about. Just some examples: all the clients in the queue before you were LowID; the other side has changed upload priorities which pushed you to the front of the queue; all the clients before you has been served or expired; or a combination of these; or ...
Your queue position is affected by several values: the time spent in the queue, the credits you have on the other uploader, the upload priority of the file you're currently asking for. The uploader than orders the clients in the queue taking these into account. That is, if you have more credit, you travel faster in the queue. If you ask for a higher priority file, you travel faster in the queue. If you have spent more time in the queue, you'll be closer to the top of the queue.
No data: I have seen such "connections" before, too.
Keep-alive transfer rate: Requesting (and downloading) the same chunk from different sources is at least tricky. I don't say it's not possible, a faster source may override a slower one.