The answer depends in large part on who is in charge of managing content types. Or, am I really just rephrasing your question? If the creation and management of content types is in the hands of a business user, then the manual labor approach, while potentially problematic, is fine. IT folks may flinch at this strategy, but but not every company has the IT resources to handle updating document templates used by content types, for example. Also, not every environment is set up to have every single change tested out on a QA farm. So, if the Project Management team wants to update the document used as the template for an SOW, do they 1)go to the IT team to update some development package with the updated template, deploy to QA, test, deploy to PROD, or 2)have someone in the Project Management team update the content type directly.
Though, if you're against the manual method, my vote is for PowerShell. Farm Solutions have some obvious disadvantages (only works on prem, requires farm admin priviledges, etc). Sandbox hasn't officially been deprecated for these types of solutions, but any time the subject comes up, MVPs seem to say that we should treat them as deprecated anyway. CSOM works, but then we're either deploying an APP in order to get a content type configured, which seems like overkill, or we're writing CSOM code in some compiled solution that we they need to run from somewhere else.
Having said that, I would love it if statistics were available on what % of people were using each strategy for different aspects of the platform.