This sometimes happens to me as well... Usually it works within 3 tries
I think it has something to do with the FTDI header, maybe the RX,TX,GND and 5V pins are not connected simultaneously... and the first milliseconds of communications are scrambled. Usually if you do it swiftly it works better.
I was thinking to include a delay at the beginning of the bootloader, but I also want the startup time to be as short as possible in case a reset occurs during flight (shouldn't happen anyway). Maybe a 10ms delay would be a good "middle way".