I should add a couple of points.
Method 2 is basically simulating Method 1. Making it look like it is reading the FIT file from the device rather than the filesystem of the computer. This is why it works.
One difference between the 2 methods is the filenames of the FIT files are different. On the device itself they are basically the date/time of the activity. Obviously, this would not be unique in Garmin Cloud as lots of people could start activities at the same time. Once uploaded to Garmin Cloud the filename is changed to some unique number, which is also the activity identifier in Connect.
For example, my most recent dive is 8359862111. If I export that file, it comes down as 8359862111.zip. When I unzip it, it will be 8359862111_ACTIVITY.fit
While the contents of the files are identical, the difference in the filenames can confuse Subsurface. If you only ever use Method 1 or Method 2, you won't have any problems at all because the filenames will sort into the order of the activities. However, if you switch between the two methods, Subsurface can't track which dives have already been loaded and which haven't as it tracks the file names.
So, if you switch between both methods, you need to select "Force download of all dives" and then deselect the ones you already have.