Hi Mike,
3. Yes, you can pull data using web data lookups for the: visitor, contact, or custom object fields or shared list membership
4. You can only pull the campaign membership data through the API. Alternatively you could have the campaign add contacts to a shared list and then use a web data lookup to check if the contact is in that shared list
5. You could setup an integration for this. You'd probably end up using the processed activity queue if you want to move all activity data because accessing the activity data directly through the API you have to do it by Contact
6. If the visitor is not linked to a contact in Eloqua you won't know who it is. You will need some identifier to do any of this
Cheers,
Ben