Unfortunately, these numbers are actually meaningless without access to the scripts used. In fact, Mike was stating he's doing quit a bit in the loop construct for other purposes, which consume steps that would otherwise be allocated to more queue time. I'd wager more callback scripts in the field are not doing as much as Mike is doing, and instead, are simply looping a menu/get digit string to ask the agent to press a button on their phone.
If a loop consists of 10 steps, and one loop cycle takes 10 seconds, you're going to be burning 60 steps a minute, or 3,600 steps per hour. With a max steps setting of 2,500, you're looking at a max queue time before aborting the contact of about 45 minutes only.
Contrast that with a smaller loop of 5 steps, and an increased cycle duration of 20 seconds, and you're immediately jumping up to about 3 hours. That's a big difference in max queue time, but seemingly inconsequential on the scripting side.
There are three problems with the callback solution everyone does in UCCX:
Also, the OVA template or the number of ports configured or the number of licenses installed, has no bearing on how long you can queue a call. It does matter for quantity of callers in the system, but that is going to vary a lot based on what other things you're doing with UCCX and how you configured your CCGs. The only thing that's different about a callback call, is that it consumes 2 ports in UCCX while queued, but at the benefit of freeing up a PSTN trunk.