Lol, I was just about to start posting comments. Glad you figured it out...
Yes, engagement events that can trigger multiple times can definitely cause some headaches.
The other thing you might want to consider is engagement weights...
Like a scroll event is worth 1, hitting "Read More" to load additional content could be weighted to 5, signing up for a newsletter on an overlay could be 10, etc...
It wouldn't be just a simple engagement over page views type calculation... but could provide different types of understanding for your engaged users.
I would have a table with eventX, and segment:eventX exists stacked with Visits and stacked with Unique Visitors
Segment:
HIT [
eventX exists
]
EventX is the raw number of engagements (PVs), the column with the segment and visits would show me the number of visits where people engaged, and the segment and UVs would show me the numbers of visitors who engaged...
Now, something like scrolling, it's probably going to be close to 100% visits and visitors... but a different type of engagement, like "expand element" or "view more" would be a lot more telling.