Vale este era 'el post'...
Tienes toda la razón del mundo, es un tema complicado...
Yo estuve trabajando en un proyecto, con la uAlfat y optamos por una solución 'chapucera'... creamos varios ficheros. De esta forma reduces el tiempo de acceso, además del tiempo de apertura. Cuando trabajes con ella, te darás cuenta que cuanto mayor sea el tamaño, mayor será el tiempo para abrir el archivo. Tiene una cosa buena, y es que puedes tener abiertos varios archivos, eso se encarga de gestionarlo el propio chip.
Implementamos un pseudo-sistema operativo; Lleno de if anidados, de temporizadores y de flags, de tal forma que con el PIC podíamos hacer varias cosas 'a la vez', mientras esperabamos a que se escribiera/leyera/abriera un determinado archivo. Lo bonito del código, es que el PIC hacía varios procesos a la vez y estos a su vez tenían distintos subprocesos que también se iban ejecutando de forma autónoma.
Resumiendo, lo que necesitas hacer, es posible hacerlo con un PIC18F y una uAlfat... pero la programación en C no va a ser nada comoda hacerla.
Y efectivamente, tal y como comenta Suky, todo depende del tiempo, nosotros con la uAlfat hemos trabajado con tiempos de milisegundos para gestionar la apertura/escritura/guardado/cerrado del archivo. Si el archivo lo mantienes abierto, ese tiempo lo ahorras, y normalmente es el mayor...
un saludo!