Split large log file like a dictionary
Since you are concerned about execution speed, you should write this program in some other programming languages as well and compare their performance. I'd take Java, C++, Go, Perl, Python and Rust. Traditionally, AWK gets the job done but is not optimized for processing huge amounts of data.

Instead of setting FS on the command line, it should be in a BEGIN clause since it is an essential part of the program:

BEGIN {
    FS = /[[:digit:]]+/;
}


Asking for code that is not yet implemented is off-topic on this site, so I won't comment much on that. The code will become much larger by that requirement though and will require more thought. Be prepared to have a collection of small sample files to test the edge cases automatically.