Hi,
Let's try and break this up into scenarios, but first, it must be noted that the Lifecycle metrics don't pause by default in this version of the SDK... Adobe provides a lot more "customization" by doing this, but it cause also cause a lot of confusion.
In order to properly record crashes, you must ensure that when the app is sent into the background, lifecycle metrics are paused and when the app is brought back to active status that the lifecycle metrics are re-enabled.
Scenario 1 - backdateSessionInfo NOT enabled
Basically what this does, is when the app crashes.. the information about the crash is "remembered" by the app. The next time the app is opened, the lifecycle metrics sees that there was a crash, and the "crashEvent" data will be appended to the LifeCycle metrics along with the launchEvent and everything else in that first call. The timestamp of the crash will be recorded at the same time as the launch.
Scenario 2 - backdateSessionInfo IS enabled
When the app crashes, the information about the crash is remembered... same as scenario 1. The difference is how the data is sent to Adobe. In this scenario, the next time the app is launched you will get 2 lifecycle calls. One will be the crashEvent, which will be back dated to when the crash was recorded. Then there will be a separate call for the rest of the Lifecycle metrics at the current timestamp for LaunchEvent and the rest of the normal start up Lifecycle metrics.
This doesn't inflate the "App Users"... it's just another tracking server call for the same user, but the timestamp is back dated to when the crash occurred. Basically think of Lifecycle metrics like fancy trackActions... you are sending 2 actions with different timestamps, vs a single action combining all the metrics into a single call.
Now, the part I mentioned earlier, and pausing and un-pausing your lifecycle metrics is very very important. The reason for this is, when users close your app... users will send the app to the background, then swipe it "off" to close. If your lifecycle metrics haven't been paused, this action will register as a crash... so basically ever time a user returns to your app after closing it will record a crashEvent (which is not what you want). Pausing the lifecycle metrics when it goes to the background means that the app being swiped off won't unintentionally register as a crash... and equally important, if the app isn't closed, and the user brings it back to the foreground, you want your lifecycle metrics to resume... if the app was minimized and reopened outside of your session timeout, that new session will now be recorded, and if the app crashes later that will be caught as well.