One thing I see in your code is that you do not have any command that would be the equivalent of a MIDI_NOTE_OFF message. Im not sure if that is the reason you are having this problem, but it is worth a try.
It would look something like this
if (sensorReading1 >= threshold1) {
MIDI.sendNoteOn(65, 90, 1);
delay(1000);
MIDI.sendNoteOn(65, 0, 1); // This is the MIDI note off command. The 2nd argument is the velocity of the note
delay(1000);
}
Im not familiar with the concept of crosstalk. I would be happy to check out that part the video, but the video you posted is over an hour long, so you are going to need to provide me with the time of the video where that part is discussed.
As for the latency, I cannot really say I have any idea what is causing that. My only thought would be it may have to do with your computer. Or perhaps there is some delay in the serial communication going from the Arduino through Hairless MIDI and then to Sonic Pi. The project I did doesn’t use the Hairless MIDI so that step is removed from the serial communication which may affect the latency. If you are really determined to get this project to work, I would still recommend looking into getting the MKRZero board.
Here is a link to the piezo sensors that I use: $1.79 - 27mm Piezo Element (Vibration / Knock Sensor) - Tinkersphere
Hope that helps.