Any suggestions on how to manage a B2B Campaign?

Any suggestions on how to manage a B2B Campaign?

One of our most pressing needs for CRM is managing the contact plan and contact history on an account level per campaign or project, and after almost 2 years with Zoho I still haven't found any way that really works to do this, and I'm hoping someone else might have some good suggestions.

Our workflow is usually something like this:
1. We are given a client project/deal
2. We identify 15-20 Companies (accounts) that we plan on reaching out to to see if they have interest in this deal
3. We try and identify the right contacts at the company to initially reach out to
4. Some companies will reply that they are not interested, others will request more info
5. We'll usually get into a more serious back and forth with 3 or 4 companies, at this stage there are usually several people at each company that are involved with the deal

So for the first stage we'd like to be able to associate the 15-20 companies to the deal and prioritize them.  I've repurposed campaigns (as deals) to try and do this, but you can only associate contacts with a campaign, not an account.  The workaround is to create a lookup field in account, but since many accounts will eventually be associated with multiple deals and preserving the history of which accounts we've contacted for which deals is critical, this ends up not really working.

Ideally we'd like to be able to go to the deal page and see a list of the 15 companies that we've contacted for this deal, and their current status.  We'd then like to be able to click into an individual company name and see all the notes, emails, and activities that are associated with that account/deal combination.

Is there anyway to get anything close to this with Zoho or another product?  There's got to be a better way to handle this than trying to do it in Excel...