How to Disable new terms (free tagging) with Taxonomies?
There seem to be two possible solutions which are mentioned here http://fooninja.net/2012/08/03/drupal-autocomplete-term-widget-disable-creation/ and you have also mentioned them in your question.

Excerpt from the post,


  There are in fact two solutions. One is the Content Taxonomy
  module. However, I didn’t feel like installing yet another module
  for such a simple thing. The second solution is patching the core
  taxonomy module:
  
  A kind soul on the Drupal forum, j.stuyts, posted a small patch
  that adds an option to disallow autocreation. All you need to do is
  download the patch (1078878-DisableAutoCreation-D7-UTF-8.patch)
  to the Drupal 7 root directory and run.
  
  If you then go to Structure » Content types » [Your content type] and
  edit a Term reference field that uses the Autocomplete term widget,
  you’ll see a new option at the bottom: “Allow autocreation of new
  terms” (checked by default).


Although hacking in core is never recommended but you can use patch till the time you get better solution.