$ find *jpg -printf '%s %p\n' | sort -n
432208 t_ect.jpg
432212 t_ultra.jpg
478307 t.jpg
I found more jpegs, where jpegultrascan is exactly 4 bytes larger than pingo or ect. These are exactly the 4 bytes that are wasted by IJG by using separate markers for quantization tables.
So if I manually concatenate the DQTs, I will get the same file size.
jpegultrascan could just concatenate the quantization tables as the final step and compensate for the edge cases.
Original JPG:

jpegultrascan's JPG (jpegultrascan -s -i -p ./jpegtran_ijg_v9f):

ect's JPG (ect -strip -progressive -9):
