OFFSET with long text area field - undocumented?
As per my comments, one possible work around is to use the SOQL query in for loop as documented in Working with Very Large SOQL Queries.
E.g.
for (CustomObject__c a : [Select LongText1__c, LongText2__c, LongText3__c, LongText4__c
from CustomObject__c limit 200 offset 0]) {
// Your code without DML statements here
}
I suspect it is something to do with the QueryResult paging that you would typically see with the SOAP API query() method. Of course, I could be way off. And it doesn't explain why removing the offset returns all 200 expected results.