Thx for taking the time to look at this - been away for a few days for work and only got to look at this again today.
I'd checked the file for with and without <CR> and was sure it wasn't there. I've done a load of testing this evening and have finally nailed it down. It appears to be caused by a race condition with my Python script and the MF script trying to read the import file at exactly the same time. For normal Python on Windows, it *should* not create an exclusive lock that prevents another process from reading the file at the same time. Multiple processes can normally have the file open for reading concurrently.
To test, I created another version of my code that does everything else exactly the same, but doesn't attempt to read the import file.... and everything stays perfectly live, nothing greys out. I am now working on a version that avoids the race condition!

I do therefore think though that if MF tries to read the import file at exactly the same moment another process is reading it, it silently fails and reads it as empty - and then everything greys out. I also believe that once this has happened, the file will no longer be correctly imported. (This is the part that is speculative, I would think that on the next successful / correct import, the markets would go green again but they don't seem to - once they go grey, that seems to be the permanent state until the markets are reloaded).
Would be good to understand what happens under the hood with the reimport function to be completely sure.
Thanks again!