Mega 2560 as ISP for ATTiny

         Hardware Version: 2
         Firmware Version: 1.18

That is a response from ArduinoISP. Up to that point, everything is in good order.

If auto-reset was firing, the bootloader would run and potentially respond (but probably not at 9600 baud). We would expect something like this for a response...

         Hardware Version: 3
         Firmware Version: 3.3
avrdude: Send: B [42] . [14] . [00] . [00] . [01] . [01] . [01] . [01] . [03] . [ff] . [ff] . [ff] . [ff] . [00] @ [40] . [01] . [00] . [00] . [00] . [10] . [00]   [20] 
avrdude: Recv: . [15]

Everything up to that point appears to be correct. fill consumes the 20 bytes and then checks for a space (0x20). It blocks until a character arrives. As far as I can tell, there are only two possibilities: 1. The space was corrupted; 2. The two sides are hopelessly out of synchronization. Unfortunately, the evidence indicates that neither is true.

It's time for black-box probing: How does it behave when the baud rate is 19200?