I would recommend using Workspaces, but only 1 Lead Partition. A Lead can only be in 1 partition, and that causes several challenges in case you have more than 1 partition. Only if...
Your best chance is to wait for the REST API that we'll launch this summer. That may add some new features that make it easier for the end user to install your app to work with Mar...
The easiest is to create a Smart Campaign inside Marketo that adds those leads to a Static List. In the SOAP API you then download the members of that list.
I don't think you can retrieve delete activities using getleadActivity, because the lead that was deleted does not exist anymore. There is a slight change that you can use getLeadC...