There are many V-Plotters. To build the mechanics so strong that you can mill with it is new and very good.
I developed a similar project for the Raspberry and as a retired programmer I like to analyze other source code.
The software for the ARDUINO contains many useless lines! The ARDUINO is just doing it pointlessly.
Some examples:
Too often you compare whether the parameter F is too large
“feedMMPerMin = constrain (MMPerMin, 1, sysSettings.maxFeed);”
this is unnecessary and only needs to be done once if F was found in the line and only if the speed changes.
You are constantly multiplying many values with sys.inchesToMMConversion
which is absolutely not necessary. It would be sufficient to convert the values once when the line is read and decoded.
Since you read the file with a PC and send it serially to the ARDUINO, it would be even better to convert the values there as follows:
that only mm and only as absolute values are sent and
that the ARDUINO only gets the lines with which it can really do something and everything else is not sent at all.
The free resources should be used for an approach and braking ramp.
This is not a complete overview but what I noticed at first glance