When I have had something like this I have just set the dates to 01/01/2018 or 01/01/2020 in the file to be imported, which means that if you set the date more precisely for future contacts entered in directly that you can still sort by the date. Just means that if its the first day of the year it might not be precise. As long as users are aware of this, ...
I think hook_civicrm_check with the following SQL would handle notifications of duplicates:
SELECT phone FROM civicrm_phone GROUP BY phone_numeric HAVING count(*) > 1;
For back-end forms, you could modify the Supervised dedupe rules, though this wouldn't catch non-unique numbers belonging to different contact types.
You can add an extra column to your spreadsheet called "On Hold" and assign it 1, another one called "hold date" and then (3 options below, choose 1):
import your sheet (using eileen's csv import extension) as "emails", with appropriate matching rules.
If you're brave, you ...
CSV Import and Form Processor IS a powerful combo! Check out the advimportformprocessor extension.
Note that this combines the "advimport" extension rather than the CSV API GUI extension with Form Processor. It's overall better, but some work on advimport's rough edges would improve the UX.
Also note that Form Processor is pretty slow, so imports ...