I was planning to give a complete report once I know that it is truly working in the field, which will be tonight, hopefully.
However, since you ask, there were definitely at least two bugs:
The missing minus sign in the checksum calculation that I mentioned earlier
The GET_MTR_POS request was missing a byte.
I added code to rigorously clear RTS since if it is left laying around, the focuser hand controller is locked out (that definitely happened to me).
In addition, I believe (and I guess PlaneWave does, too, per their python script) that the better, safer, approach to reading packets is to go byte at a time so as to get the embedded data length, which also allows a check that there is enough buffer space, and then read that many bytes. Also byte at a time allows gibberish, should it appear (as it does when baud rate is wrong), to be discarded safely.
Finally, I added some sanity checks per the python script to confirm that the packet to be used is indeed the response to the request sent.
The vast majority of the driver code is bug-free and correct, and I certainly am extremely thankful for it - all of which is to say it is not a criticism when I say that in its current state I cannot see that anyone ever used this driver on a PlaneWave EFA unit. FYI: DeltaT Dew Heater code works fine.
I will provide you the changes I made via the git process once I confirm that this version works.
Again - extremely heartfelt thanks for INDI, KStars and EKOS... what a joy to use this software.