More often than I'd like, I start a capture that is waiting for a trigger. At some point, Logic decides the USB bus does not have enough bandwidth to handle all the data. When this happens a dialog box pops up and stops any running capture. This invariably makes me miss the trigger that I was waiting for and forces me to restart the whole sequence which often takes a while to setup.
IMHO, the "keep" vs "discard" option is just a waste of time.
The best implementation, imho, would be to simply mark a section of time as invalid, data lost, or automatically undersampled. If the data I really cared about was missed, then I can re-run the capture. But 99% of the time I'm sure the capture would have recovered if not for the hard error when the USB bus cannot keep up.