($100 paid request) Serial/SafeString/Digital Read/Write bug is ruining my life

Since the current fix only papers over handling bursts of commands, I suggest you add, on the Python side, a list of command sent (containing : ) and then remove them as transmitSerial sends back the results.
Raise an error if the next response from Arduino, with a :, does not match the top of the list.

Then reduce the size of bufferedInput until you provoke an input overflow error and see that your checking code detects it.