Nel caso il delay iniziale sia positivo è molto semplice.
Supponiamo di avere StreamExtractor che segnala un delay di 100ms, si segue tutta la procedura come descritta, e per verificare si apre l'mkv creato sempre con StreamExtractor: la traccia audio avrà ancora quei 100ms indicati.
Se il delay è negativo la questione è un po' più complessa, e inizialmente mi ha lasciato spiazzato: a fronte di un delay iniziale di -8ms mi sono trovato un mkv che riportava 3ms in positivo!
Dopo vari esperimenti sono giunto alla conclusione che MKVmerge non può/vuole impostare delay negativi, per cui se gliene si imposta uno lui provvede a tagliare i frames approssimando per difetto e poi a inserire un piccolo delay positivo in automatico (se necessario) per allineare il tutto.
Spero si capisca come spiegazione, è molto simile alla logica spiegata prima per StreamExtractor comunque.
Se vuoi aggiungi anche la parte riguardante la suddivisione in capitoli.
L'estrazione in txt con StreamExtractor penso non necessiti di spiegazioni particolari, e per MKVmerge è sufficiente impostare il txt in questione alla voce "Chapter file" nella scheda Global.
Sono molto perfezionista su queste cose per cui segnalo volentieri qualunque cosa scopro utile a cercare di rispettare l'1:1 il più possibile!