PlayerDisconnecting is an internal function not established for developer use. You are meant to use PlayerRemoving. In addition to this, DataStore2 automatically handles leaving conditions for saving, so this is out of the question to begin with.
The most appropriate applicable fixes here are to mass save with BindToClose (provided that even works - it probably will if OP doesn’t use the Player instance as a data dependency) and/or implement an autosaving feature every so often, or push data to a cache upon changing (this is provided DataStore2 doesn’t actually use a save operation when running Set).