I’ve looked at this for a long time and the only problem I can see is still part of the ordering logic, which hopefully will get fixed next release.
The problem stems from how assemblers request resources. It tries to keep its inventory as full as possible, so it can only request items for spaces just cleared up by the previous production step.
So when it is fitting the door panels (the previous step), it still only has room for 3 windows on the stockpile. Once those 4 door panels are removed from the stockpile, it finally has enough room to fit the windows and orders them. However it then has to wait in the fit windows production step, because the items haven’t arrived yet.
The real bug here is that items for other steps are ordered in advance, blocking the space for items needed immediately. If the assembler requested 4 door frames, 5 windows and after that pieces of trim/hood and other materials needed for the next cycle, this problem wouldn’t exist. But as of right now, it keeps ordering the smaller quantities for later steps (since it has the space for it) instead of ordering the needed materials for earlier steps.