This is to add queue number for queries after they were launched, in order to give users an idea of the sequence in which their queries were launched. Or in other words, to give them an idea of how many queries were launched before them which are still competing for resources with their query.
Giving queue numbers from waiting query collection may not be correct as they are not consistent. When a candidate query is picked up from waiting state, it is removed from the collection and checked for cost constraints. If it fails the constraints, the query is added back to the waiting query collection. This causes inconsistency in terms of indices of queries within the collection. Because of this inconsistency, user might see their queue number increasing.