BWAHAHAHAH!!! (evil laughter)
Fixed it.
Took my own advice and looked at how "upload.php" works. This is the condition for properly uploading:
Code:
if ( json_decode($import_options) != NULL AND strpos($import_options, 'use_bfa_seo') !== FALSE )
If either condition fails, then you get the error message.
The string "use_bfa_seo" is present, so I knew something had to be triggering json_decode to give NULL.
Turns out that for some reason WP Supercache was dumping a string onto the end of that .txt file, after the "}". This made for invalid syntax for json_decode, thus giving null.
Deleted the string, imported just fine.
Suggestion to anyone getting this error: open the txt file and look at it. Look for "use_bfa_seo" near the start and make sure the whole thing's bound between { and }.