You are correct about the way that GetLongPathName() will work.
My first attempt was to sort files by the time stamp, and rename them in that order from the index. But, apparently the files were created in various places and then moved into the same directory at some point. The index order is the creation order. This happy coincidence is the reason I've called this 'a workaround in the bad sense'.
By the way, I think that the "budget constraints" excuse for not fixing this means, "I don't have time or staff to look into your problem", not "we can't afford different software".