I know it has been months but I just had an idea that seems to fix this issue. I still need to test for some time to make sure but so far it is working fine.
What I did is simply add a delay before the SD card is initialized. The attached patch takes a brute force approach and will attempt to initialize multiple times. However, so far it has never had to attempt the initialize more than once.
That little "msleep(5)" before setting up the card seems to be all that is needed. Like I said though, still testing but looking good.