Some thoughts on your questions based on my main vault:
Each contact is a separate document. I keep all contacts in a separate folder in the vault
Linking contacts is easily done in Obsidian. I also have a folder for Organization so I can link to an orgainzation as well
Meeting notes, just like you suggest
Table to list contacts - I don’t need this as all my contacts are in the same folder and I can see them in the file view. You could add the Dataview plugin and build a report that way if you want
Import CSV of contacts. There is a CSV/JSON Import plugin but full transparency, I have not used it
Templates: What are you looking to do with them? The core template function can be a little challenging at first but well worth the effort. I use templates a lot. I have not used the templater scripting plugin, but it’s on my list for a rainy weekend