Dump Flash Memory through a single GPIO pin
The biggest issue I see with your current plan is tat long series of 0s or 1's (multiple 0x00 or oxFF bytes) will be difficult to differentiate.  Here are some other ideas for consideration.

Bitbanged UART TX

Bit banging a UART TX line isn't terribly hard.  Pick a a slower baud rate that is easily divides your system clock.  You'll still be transmitting bytes in a similar fashion as your code sample, just with a set delay between each bit and a leading start and trailing stop bit for each byte.  This has the advantage of being able to be directly connected to a computer to receive all the data.  Alternatively, newer logic analyzers can usually decode the transmission directly into bytes without you needing to do anything by hand. 

UNI/O

Microchip has a single line communication scheme called UNI/O.  It runs at a range of clock rates where the master basically toggle the line at a given rate a few times and then all communication takes place at that rate.

A bit value is then transmitted by the rising or falling edge taking place in the middle of the clock period.  A High to low transition would be a zero bit and a low to high transition would be a one bit.  You can read more about UNI/O here