There is a third method.
1. Mr. Felton's fix modifies the interpretation of what the "Default Completion feature is supported" means. The original code says: if Default Completion is supported by the plugin, then set to Manual Tracking setting by default; if Default Completion is not supported by the plugin, then set to No Tracking setting by default. Although Mr. Felton's fix does achieve what he wants, it has a side-effect of "un-fixing" the opposite: when it actually is supported, it will say None by default.
2. Mr. Hunt's fix is good, but sets everything to None, removing the check for the "Default Completion feature is supported".
3. My fix does not touch standard_coursemodule_elements() but rather init_features(). init_features() is what sets the variable $this->_features->defaultcompletion which is checked in standard_coursemodule_elements(), based on a call to /lib/moodlelib.php: plugin_supports(). In my opinion, it fixes a wrong assumption, and it does so at the root of all related functionality; this is why I favor it.
Original line /course/moodle_form_mod.php:85
$this->_features->defaultcompletion = plugin_supports('mod', $this->_modname, FEATURE_MODEDIT_DEFAULT_COMPLETION, true);
The last parameter in this call to plugin_supports specifies the desired default return value, which plugin_supports chooses when the plugin "does not know or care" (according to the comments).
I see it as incorrect for this to be true. By default, if plugin does not know or care, it should be false, to disable completion tracking. We desire to ONLY specifically set the completion tracking setting to ANYTHING, in this case ONLY the plugin's default, if it IS specified. The correct parameter is hence false.
Modified line /course/moodle_form_mod.php: 85
$this->_features->defaultcompletion = plugin_supports('mod', $this->_modname, FEATURE_MODEDIT_DEFAULT_COMPLETION, false);
I also don't see yet a Default Completion Tracking setting in any of the plugin settings, so that means that both as of right now any fix is fine and there is no practical strength to any of these methods, as well as that in the future, which method chosen here may be significant. If suddenly there is a Default Completion Tracking setting on plugins, Mr. Felton's fix will cause opposite behavior, and it will not matter in the case Mr. Hunt's fix; yet- this is a matter for those Moodlers greater than I now that my time is about spent on this one issue- I don't understand: it always sets default to Manual if default completion tracking setting is supported by plugin- so what is the point of the default completion tracking setting? Should it not set the default to whatever the default completion tracking setting is if it is supported?
OK, I probably have at least one hole in logic here, and I write this after Mr. Hunt who has much more street cred than I do around here, but I wanted to voice my alternative.