Wow! Quite a request.
First, I suggest a JIT (just in time) campaign that is always running with a priority of 5 that would allow you to call contacts immediately when you use the API to insert new records.
Then for the other ones, use a campaign with sort ascending on the date you inserted into the contacts (you will need a column for this) and a priority of 3. Use a Wrap-up rule that says when you actually contact the number, mark as uncallable and use a Data Action in the rule to create the same contact in the Follow-up contact list.
Create a Follow-up campaign with same sorting, but have a priority of 1 or 2 and same sorting. You can set a pre-call rule to look at the insert date and not call for a few days or weeks after it is inserted.
This is all VERY high level, but if you have questions, would be happy to step you through this.
------------------------------
Robert Wakefield-Carl
Avtex Solutions, LLC
Contact Center Innovation Architect
robertwc@avtex.comhttps://www.Avtex.comhttps://RobertWC.Blogspot.com------------------------------