One instance of deadlock potential:
resetDailies (holding userValues) calls Preferences.setString, which eventually dispatches to setObject.
If saveSettingsOnSet is true, this calls maybeSaveToFileAfterUpdating() which in turn calls saveToFile, which grabs lock.
Meanwhile, reset() will grab...