Well, I managed to fix it without truncating the description at all, by using another {"", ...}
block to concatenate strings, instead of giving it a literal that is over 200 characters long:
{"",
{"?", {"", {"recipe-description.basic-oil-processing"}, " "}, ""},
{ "allowed-modules.allows-module",
{ "",
"[img=item.y-pink-module-1][img=item.y-pink-module-2][img=item.y-pink-module-3][img=item.y_modul_science][img=item.productivity-module][img=item.productivity-module-2][img=item.productivity-module-3]",
"[img=item.5d-productivity-module-04][img=item.5d-productivity-module-05][img=item.5d-productivity-module-06][img=item.5d-productivity-module-07][img=item.5d-productivity-module-08]",
"[img=item.5d-productivity-module-09][img=item.5d-productivity-module-10][img=item.5d-merged-module-01][img=item.5d-merged-module-02][img=item.5d-merged-module-03][img=item.5d-merged-module-04]",
"[img=item.5d-merged-module-05][img=item.5d-merged-module-06][img=item.5d-merged-module-07][img=item.5d-merged-module-08][img=item.5d-merged-module-09][img=item.5d-merged-module-10]",
"[img=item.alien-module][img=item.alien-module-2][img=item.alien-module-3][img=item.infinity-module][img=item.infinity-module-2][img=item.infinity-module-3][img=item.Schall-EP-module-1]",
"[img=item.Schall-EP-module-2][img=item.Schall-EP-module-3][img=item.Schall-SP-module-1][img=item.Schall-SP-module-2][img=item.Schall-SP-module-3][img=item.Schall-SEP-module-1]",
"[img=item.Schall-SEP-module-2][img=item.Schall-SEP-module-3][img=item.npc-civilian-miner1][img=item.npc-civilian-miner2][img=item.npc-civilian-miner3][img=item.npc-civilian-furnace1]",
"[img=item.npc-civilian-furnace2][img=item.npc-civilian-furnace3][img=item.npc-civilian-factory1][img=item.npc-civilian-factory2][img=item.npc-civilian-factory3][img=item.npc-civilian-science1]",
"[img=item.npc-civilian-science2][img=item.npc-civilian-science3][img=item.npc-civilian-oil1][img=item.npc-civilian-oil2][img=item.npc-civilian-oil3][img=item.npc-civilian-hazmat1]",
"[img=item.npc-civilian-hazmat2][img=item.npc-civilian-hazmat3]" }}}
Now due to a stupid mistake in my code, at one point I was producing a {"", ...}
with too many parameters (the limit is 20). So I went even further and made it nested the {"", ...}
if necessary (e.g. `{"", {"", "[img=item.module1], ...}, "[img=item.another-module]", ...})
So now my mod will work if you have 306 different modules, each with a name of 189 characters. Which is just way too many.