Actually, I am pretty sure you only get the starting 2 or so waves if you start on an extinct civ. And I have wiped out a city in adventure mode once, so they don't always repopulate, at least. This might be recent, though...
In adventure mode the city is abandoned once you wipe out all historical characters and all non-historical characters. If you wipe out only the former, new historical characters will be promoted from historical characters until no non-historical characters are left but the population will not respawn until this happens. The non-historical characters are set to a ratio with their historical counterparts, taking their racial information (in both senses) from the historical characters. It is even more complicated in that the total population is capped by an economy-based soft-cap and a usually larger strict hard cap based upon site type.
So to wipe out a site you have to kill everyone before the game promotes new historical characters because without historical characters it cannot make new non-historical characters, but if you kill only the non-historical characters and leave any of the historical ones alive, new non-historical characters will spawn forever. The non-historical characters have block data values which can be used to create new historical characters from nowhere, this is the reason that genetic diversity tends to be so low in the game, historical characters make populations and populations make more historical characters.
On the question of immigrants, yes it does make immigrants up out of thin air and there isn't any point at which you start getting new immigrants just because your civilization or race is extinct; I say this because I've done this. What you won't get however is historical characters, or rather beings that were historical characters before they migrated to our fortress (all player fortress character are historical). There are three groups of characters in the game, the established historical characters, the newly minted historical characters and the non-historical characters. Speaking to a non-historical character promotes them into a newly minted historical character.
That is why having immigrants of other races is not so easy as you'd think. The game takes some historical characters of your race from other sites in the world that belong to your civilization (not just the sites that belong to your civilization) and teleports them to your fortress. Then it conjures into existance a number of newly minted historical characters based upon your civilizations racial info. Since you always have dwarves in your fortress, there is always going to be historical character info to create new immigrants.