How can I search 360,000 files, about 280 GB?
Using find ... -exec grep -r effectively traverses the whole directory several times (once as part of the find, once as part of each grep -r) which may lead to the errors you see. So you should either get rid of the find or the -r. As you use the grep part to identify the files to be collected, it's probably the -r in your case.