There is no limit set in the Discourse code for the number of categories that can be reordered. It is not handled by a background job. I think the cause of 422 errors is when the reorder code calls cat.save!. For example, your issue was with a category that had its “Auto close hours” set to 0. That’s an invalid setting, so saving the category threw an error.
It seems possible that attempting to reorder a huge number of categories could also create errors.