I provide a reply not a replay.
In all the long delay cases, in your second one, there is a Dial that is returning busy quickly, That implies the actual queue member is a local channel.
If the same local channel is present in the first examples, it is obviously doing some check that is detecting the busy condition without making a call, but when it does make a call, it is delaying before or after doing so.
I’m an Asterisk person, not a FreePBX person, so I don’t know how local channels might be used in this context, and that may also depend on the specific configuration.
From a purely Asterisk point of view, except, possibly for analogue FXS lines finding in out whether something is busy requires sending messages backwards and forward. That takes time and if something goes wrong at the first attempt, it can take more time. You would have to do full protocol logging to really see this.
Also, I think that a call rejected by the recipient will show as busy.
These would, however, only show up if a local channel wasn’t being used, and the Dial entries make me think that once it tries to make the call the busy status comes back quickly.
To really understand what is happening, you would probably need to provide the full log, with verbosity 5, and if the delay is external, the protocol logging is likely to useful, as well.