I have no enlightenment to share, but here's my thoughts.
With 500 thoughts spread all over the plex you could have each contact linked to the company, with calendar (the tab) specific items set to the individual thought and you could also link the contact to other contacts (f.ex a visual organization tree) and projects. You could assign a thought type of contact to all these thoughts, and in instant search type in Contact. That thought type would appear as a result, and clicking on it will show all 500 thoughts, regardless of their place in the plex hierarchy. Viewing in Outline view may help. In the contact notes you could keep the call information, discussions or whatever reference information you wish to have immediately available. Also, individual thoughts would allow you to type the persons name in instant search and go directly to that contact. Another approach that works fairly well with me is creating thoughts for dates. Some people use days, I use weeks. You could link the contact to the day/week thought to represent when you last talked to them, and the future date of when you next want to call them. That way when you view the weeks date you can immediately tell who you need to call. These are all just ideas, and may prove to be useful, or may be worse for your workflow. At least they may give you something to ponder or try briefly to see if they provide any additional functionality to your database. Regardless, if there are others who use a similar setup to you and would benefit from a contacts tab hopefully they will vote up the request so it will be considered.