1. PAPI code is still code that continues to affect the caches. It's natural to see a small increase in cache misses when PAPI code is executing. PAPI_read leaves the counters on, so cache misses can still occur. You shouldn't need to do another read in the after_stop call, because PAPI does an implicit read when it stops the counters. The values from PAPI_stop and after_stop should be the same.
2. Yes, if other code is executing, whether or not it is using PAPI, it can affect the cache footprint for your application and causes changes in the measured cache miss value. the counter values themselves are saved between context switches, but that doesn't prevent one application from polluting the cache of another.