As I said, you can construct an external AND gate. Not that it’s necessary to solve this, but it’s an option.
My preferred solution to vertical stacks is to send the parts is to assemble them without dropping parts into place. In a 2-item stack, if the top part arrives from the side, the assembly is ready when the top part is in place. You can build any stack from a series of single welds this way.
My 100 cycle solution to Guided Javelin is a bit messy, but you can see this happening in several places.
Center left (largely obscured) fuselage pieces 2 and 3 weld by dropping together in front of the welder - not my preferred solution, since it’s highly timing sensitive.
Center right, segment 1 joins by sliding on top of segments 2 and 3. While I’m again relying on timing, you could put a sensor to detect segment 1, and push the assembly off as segment 1 arrives.
Note that the assembly of the fuselage works regardless of input speed. The buffer area (top left) detects that 3 fuselage pieces are available before pushing all 3 simultaneously into the assembly area.
Left (again somewhat obscured), the nose cone slides on top of the fuselage. A sensor detects when the fuselage is moving in to place, and moves the nose cone as the fuselage moves past.
Bottom right, sensor 1 detects the fuselage falling in to place and pushes the engine below it. 1 cycle later both are in place and welded. Sensor 2 detects that the engine has arrived and pushes the completed assembly off.
The messy bit is that, since I’ve got the input rate set to max, the nose cones and engines tend to overflow. This is unavoidable, because the max input rate gives you 1 engine pieces for every 2 fuselage pieces, not every 3. The design deals with this by throwing excess parts into the void.