IMHO it is a timing issue - in order to go to "transfer mode" regular disks (sdcard, extsd, udisk) have to be cleanly unmounted first. Everything happens asynchronously and in different parts of Android. If something did not happen in time or out of sequence during unmount procedure - you will see what you see. The reasons could be many - difficult to tell without studying logs from your system, but anything like Link2SD, too many books, un-flashed buffers, stubborn program which has files open or is running from SD card could be the reason