OK- I'll try again.
In the program I have written to transmit commands from the Arduino to a Meccano slave module, I an using Serial1, using the TXD1 function of pin 18. When the 6 bytes of the command have been transmitted, I have to change function of pin 18 so that I can use the INT3 function of pin 18 to detect transitions, using a LO-HIGH interrupt to indicate the start of a pulse and a HIGH-LOW transition to find its end.
Since I cannot stop the serial transmitter and enable INT3 until the serial transmission has been completed, I am using TXC1 which according to my research fires when the last bit of the byte has been sent and the UDR1 transmit buffer is empty. Because it is likely that for at least half the commands there will be no slave module at an address, I have to use a timeout feature so as not to wait forever for the INT3 interrupt. I am using a 16-bit timer in the "normal"mode of operation (WGM33:WGM3:0 =0000) pre-loading a fixed value into the TCNT3 register. Initially I was aiming at a 15-ms timeout, with a counter preset of 0x8ACF or decimal (65535 - 30000) and prescaler of 8:1. However, I found that the timeout was occurring at about the end of the 4th byte of the 6-byte command stream, instead of at the end of the 6th byte as I expected. This effect is shown in the first pair of screen dumps in my initial post. The yellow line shows when the timer is active - the green line is the activity on the signal line.
When trying to see if I could find what was affecting this, I adjusted the timeout delay down to 12 ms using the value of the timer preset set of 0xA23F. With this value, the timeout commenced at the end of the transmission as expected, and as shown in the second pair of screen dumps. I tried a number of different values of the timer preset and found the expected operation for values of preset outside the range of 0x8A6F - 0x8D9E. The issue was present with Timer3 and also with Timer5.
So it appears that there is some mechanism connecting the timers with the Serial1 UART. I can visualise a number of different possibilities but without a detailed knowledge of the processor's internal operation these will be speculative only. As my application operates quite happily with a 12 ms timeout, the problem is not preventing any sort of progress. However, I would like to know if anyone has come across this before, or if there is some totally stupid glitch in my code.