Hi Matthew,
whether you're better of modeling each country as a separate aggregate or as one containing a list, depends on a lot of factors. If you decide to use one with a list, then your @TargetAggregateIdentifier will have to target the identifier of the list.
But going back to your initial question, about deleting and recreating an aggregate, if you can "undelete", then you don't really delete. If an aggregate is flagged as deleted, then all commands on it are rejected. The only way to "undelete" an aggregate, it so change the code and prevent the event to mark an aggregate as deleted.
What you probably want is a state where certain commands (probably all, but Recreate...Command) are rejected. That's just state validation that you need to implement in your Command Handlers using fields (boolean or other) in your aggregate.
Hope that helps.
Cheers,
Allard