Aiuto per compilazione STK500boot.c

Giorgio:
Oppure si potrebbe semplicemente dire una cosa tipo "se non ti arriva uno sketch entro 10 secondi fa partire lo sketch prevaricato ignorando eventuali dati sulla seriale.."

Questo non puoi farlo senza modificare pesantemente la parte di avvio del bootloader.
Visto che hai a disposizione dei pulsanti la soluzione diventa semplicissima, basta che il bootloader come prima cosa verifica se un pulsante è premuto, in caso positivo fai procedere il tutto nel modo normale, in caso contrario lo consideri come un timeout e attivi il programma.
La modifica al bootloader è semplicissima in questo caso, basta aggiungere poche righe nel main loop per attivare l'input che vuoi verificare, l'eventuale pullup interna se necessaria, una if per controllare se il tasto è premuto e avvia la "while (boot_state==0)" oppure la salta completamente facendo partire il programma utente.