I noticed this while playing around on a local minicluster with AC enabled.
The admission controller adds the reason for initial queuing to the profile, but does not expose why the query couldn't execute when it got to the head of the line. E.g. if it was initially queued because the queue was non-empty but then couldn't execute once it got to the head of the line because of memory.
We should still include the initial reason for queuing, but also include the most reason for queuing once it got to the head of the line. It's probably most useful to keep the profile updated with the latest reason at all times (since the details can change while the query is at the head of the line).