One thing I would certainly recommend, is to index all fields referenced in Definition Queries of every feature class participating in your batch process.
I have a mixed ModelBuilder / ArcPy tool that regularly churns out 400 feature classes in a single File Geodatabase, the biggest of which was an OpenStreetMap dataset for entire France that resulted in 400 thematic Feature Classes and total file size for the File Geodatabase of 271 GB, and largest Feature Class with almost 42M records. Actually, one of the base Feature Classes that represents the source data for the creation of this large set of Feature Classes, is a point dataset with over 334M records.
This is all running on a modest W7, Core i5 quadcore desktop with 16GB RAM (most of which is actually of no use to ArcGIS for Desktop, since it can't use it like 64 bit ArcGIS Pro).
Making sure all relevant attribute fields had proper indexes, proved to make a real difference on performance. That said, ArcGIS can still appear to "hang" now and then during certain processes, but it rarely fails on this tool despite the huge number of Feature Classes created.
arcpy
script freeze? I had several time the issue that just the outputs freezes but the script is still running in the background. Try to run the script just over 25 featureclasses and check if it comes to an end. You may could split into 15 featureclasse packages.