One thing we have learned over the years is your app users will never do what you think they're going to do. Typically they do any number of weird and unexpected things while they are using your app.
After puzzling through some ways to solve this we ended up falling back onto our logging platform, extending it to allow us to log user actions as they work their way through the application.
We added the ability to add user actions (or events) into the logging system so we can correlate and organize the user actions. This assists in all kinds of ways: