Much thanks to @vohlz for helping diagnose these issues over on Godot github....much of his words used here:
With Android 6 and beyond your app has to be manually granted storage permissions (via application settings on the device) despite having it granted via the export settings/manifest! This appears to be only true while you are developing and will not be an issue once the app is deployed to the Play store and it gets downloaded and installed that way. However, side-loading or one-click deploy/debug from Godot engine will fail. In my case, the app will never be added to the Play store as this is a work project and will only be side loaded to our tablets for internal use. Hence there needs to be another way.
So...the "Clear Previous Install" option must be unchecked in Godot or you won't be able to properly debug because the write permissions will be reset due to the manual grant thing. This was the major hangup for me as I was trying to debug and couldn't get any debug info back as each time I deployed with remote debug, it would reset the permissions due to uninstall and reinstall of the app, which meant I couldn't see what was going wrong.
In the end I'm manually using this for Android environments as my directory to write to;
user_dir = "/storage/emulated/0/Download/"
And still using this for any deployment to a Windows environment;
userdir = OS.getsystemdir(OS.SYSTEMDIR_DOCUMENTS)