elfco, en vez de reintentar 3 veces (que puede que solucione muchos problemas, de todos modos), ¿porqué no intentas hacer lo que hace Linux al leer dispositivos mass-storage (es decir, lápices USB y discos duros como los que quieren usar ahora)?
Linux hace un "waiting for device to settle before scanning", es decir, espera un tiempo prudencial desde que se conecta el dispositivo (no se si son 5 o 10 segundos) y luego intenta leerlo. No se realmente si lo hace el módulo USB del kernel, o ya en el espacio de usuario, pero vamos, que tú puedes hacer la modificación en la aplicación o modificar el libwbfs imagino.
En fin, es sólo una idea. Si la pruebas ya me cuentas.