Excellent post. I especially liked the "specs in the footer". Beautiful. Welcome to the party!
Next: Cloud server? This is likely your problem.
Next: You are approaching this from the "consumer" standpoint (my car don't work) instead of a technician standpoint.
Let's try to break this down a bit:
You have your ratio set to 3:1 (three lines per agent).
You also have it set to not care if the agents are available. So in theory if you have 5 agents logged in taking calls (not paused) it should be making 15 calls (even if the agents in question are already in a call).
First of all, you need to set "available only tally" to Yes (but if you're not dropping calls yet, I realize this is not a priority).
Secondly, you need to see if it is actually dialing 15 calls! ("before receiving the first call" is similar to "it don't work", the question is whether: 1) did it dial the calls required? this would show in calls ringing on the real time screen AND would show in the asterisk cli under "show channels" as ringing channels) 2) did anyone ANSWER any of these calls? (this will show in the asterisk CLI, the word "ANSWER" will shoot across instead of CANCEL). At this point you can determine if answered calls are not being sent to agents, or if something else is going wrong.
Mostly: You should not be running this in the cloud. I'll tell ya right now that's likely your problem. Cloud + Vicidial = so far NO winners (although a lot have tried, it's great for testing for a SINGLE agent per server!).
Try it again with a SINGLE physical server and you'll probably enjoy your testing much more
(Just sayin' ...)