The implementation I've added fixes the ITL overscan size by setting it to 64 pixels. I did not extend it to cover the doubly-overscanned region, as the current ip_isr overscan code automatically does extension when doParallelOverscan is enabled.
The main goal of this fix was to remove the log messages that are sometimes confusing. In addition, I removed another log message that would trigger for every assembly, as the header DETSEC and the values in the cameraGeom object disagree.
Finally, to ensure consistent processing of obs_lsst data, I've made the MEDIAN_PER_ROW overscan correction the default. This is widely acknowledged as the current best, and having it not be the default has created a number of confusing results that were traced back to overscan fit mismatch.
I believe the issue is not that the size of the serial overscan should be 64 pixels. Instead, it's that the Camera code is writing out the data for each amp using a raw bounding box of size 576 x 2048 pixels for both e2V and ITL CCDs. As a result, for e2V, the serial overscan is 54 pixels wide, while for ITL it's 64 pixels. Here are the relevant header excerpts from the BOT data taken on 2021-12-12:
For an e2V CCD:
XTENSION= 'IMAGE ' / marks beginning of new HDU
BITPIX = 32 / bits per data value
NAXIS = 2 / number of axis
NAXIS1 = 576 / size of the n'th axis
NAXIS2 = 2048 / size of the n'th axis
PCOUNT = 0 / Required value
GCOUNT = 1 / Required value
CHANNEL = 1
EXTNAME = 'Segment10'
CCDSUM = '1 1 '
DATASEC = '[11:522,1:2002]'
DETSEC = '[512:1,1:2002]'
DETSIZE = '[1:4096,1:4004]'
For an ITL CCD:
XTENSION= 'IMAGE ' / marks beginning of new HDU
BITPIX = 32 / bits per data value
NAXIS = 2 / number of axis
NAXIS1 = 576 / size of the n'th axis
NAXIS2 = 2048 / size of the n'th axis
PCOUNT = 0 / Required value
GCOUNT = 1 / Required value
CHANNEL = 1
EXTNAME = 'Segment10'
CCDSUM = '1 1 '
DATASEC = '[4:512,1:2000]'
DETSEC = '[509:1,1:2000]'
DETSIZE = '[1:4072,1:4000]'
We should check with Tony Johnson whether these bounding boxes sizes are final or not.