queues.conf
shared_lascall=yes
strategy=rrmemory
wrapuptime=15
A1,A2,A3 are members of 2 queues: queue1(Q1) and queue2(Q2)
A3 has penalty 3 in Q1 where min/max penalty are 0/3 and A3 has penalty 0 at Q2 where min/max penalty are 0/3. A3 has just ended a call and is on wrapuptime pause. User1 (U1) enters Q1 with priority 10, and user2 (U2) enters Q2 with priority 15. A3 wrapuptime ends. What user U1 or U2 will be served first?
First will be served user that first enter. Reason: priority in queue work only inside queue. First enter will "block" calling to A3.
If A3 was not-free on user enter and now free, in general no way say which queue will "block" A3.
Penalty inside queue work like that: queue not try call/block agent if any agent with lower penalty value exist and free. So penalty also not affect order(if A1,A2 is busy). if A1,A2 also free, it will affect and in Q1 will be no call to A3 even if no call from Q2 and A3 availible.
Also you have consider that if u have 2 users A,B and A is in any break-out event like info "you are first in line" and B is NOT,next served user will be B ;)