If you have to do this in Photoshop, it will probably have to be a script, plug-in, or maybe an action.
If you’re open to other software, you’re more likely to have a ready-to-go solution. For example, instead of Photoshop, I would much rather use one of the Adobe batch processors for this such as Adobe Bridge, Adobe Camera Raw, or Adobe Lightroom Classic. Partly this is because they can efficiently batch-process images in parallel with GPU acceleration. However, out of those three, the only two options that fulfill all three of your criteria are Camera Raw and Lightroom Classic, which have basically the same export options.
The Export dialog box in Lightroom Classic is shown below, with the sections numbered according to your criteria. Of course, it’s possible to select any number of images before going into Export; all of the selected images will be exported with the current settings.
1. In Image Sizing, the Resize to Fit option allows limiting the maximum height, width, or both.
2. In File Settings, the Limit File Size To option allows limiting the maximum file size.
3. Using the Preset section, you can save the settings in the right side panel stack as a named preset. You can organize presets into groups. Your requirements can be enforced consistently as long as your operators know that they must select an appropriate preset and not change the settings it applies. Not shown: When each preset group is expanded, check boxes are visible so that you can run more than one preset per export batch.

Adobe Camera Raw can similarly batch-process multiple images loaded into it, but it’s a little more restricted because compared to Export in Lightroom Classic, Camera Raw supports fewer image file types and its Save dialog box (same features as Export in Lightroom Classic) has a slightly less useful design than in Lightroom Classic, particularly with presets.
One potential issue is that you mentioned scalability. In Lightroom Classic the images have to be loaded into a catalog, which cannot be located on a network file server, and Lightroom Classic doesn’t support multi-user access. If this turns out to be a roadblock, you may have to turn to other tools. I use a Mac where I can name several applications that should do it, such as Retrobatch, but on Windows I only know of xnView MP (because it has a Mac version) and ImageMagick (open source, cross platform, widely used) but I’m sure there are more options.