use lockedSPI release callback just because
a little better logging and such
[not working yet] sometimes sendCommand would consume some of data response too. this changes its logic to dynamically wait more like the data responses, but is currently failing now due to some other undiagnosed reason