Is there a chance to set a timeout to the highlighter? All three highlighter ("plain","postings","fvh") are slow on big documents. Could I set a timeout to skip complicated documents?
There is a timeout setting  that can be applied to searches - it doesn't kill active threads but relies on any tight loops in the executing code having a "have we timed out yet?" check weaved into the code. Most of the heavy elasticsearch loops have this check but not all parts of the stack do. I'm not sure, for example, if a custom Lucene Analyzer doing some expensive look-ups as part of the highlighting process would be guaranteed to be stoppable mid-process.
Another option to consider perhaps is breaking big docs up either using nested or parent-child and highlighting only matching sub-sets of a doc?