SD.h is just a wrapper for an old version of my SdFfat library so that is what you are using in both cases.
card.init(2, csPin) runs the card at 1/4 speed. You have an SPI problem, maybe your wiring is not clean enough to run at high speed.
SD errorCode: 0X10
SD errorData: 0X1
This is a read error for one of the SD card's info registers. This is almost always due to problems with the SPI bus.
The standard SD.h wrapper does not allow you to set the SPI bus speed, it always runs at 1/2 speed. New versions of SdFat allow the bus speed to be set with the second argument of sd.begin(csPin, speed).
You will be "corrupting your cards" unless you fix the SPI problem or run the SPI bus at very slow speeds.