Apparently it is virtually impossible to do what I want because the QTextBlock itself hardcodes a QTextLayout in its ::layout() method (see here). Moreover, it seems that every hook we could use is only available in the private classes...
Now, the problem is that it prevents everybody wanting to implement custom behavior to create anything based on the QTextDocument and its associates. I wonder how the people who created text editors got away with this (probably implemented everything from scratch).
Well, at the end, the only thing I found that could work was to manually insert unicode U+002028 (Line Separator) wherever I want using QTextCursor, which is terrible because everytime the editor area width changes I have to remove the old ones and insert new ones...
As I'm not happy with the solution I found, I'll not mark this question as solved.