In Marathon 1.6.x, support for Mesos maintenance mode was introduced (was contributed by the community). This feature allows the operator to tell Marathon to refuse to launch new tasks on agents that are in maintenance mode. See the docs page. Currently, this is off by default.
It seems as if we should consider turning this feature on by default. Mesos operators are (justifiably) often surprised when Marathon schedules tasks on nodes that are marked for maintenance, especially since the goal of Marathon is to keep long-running tasks up and running, and not to run short lived compute jobs (such as perhaps spark would be used for).
Currently, the maintenance mode feature is enabled by adding it to the --enable_features list. I propose that we deprecate this method of controlling the feature, and instead add a flag --disable_mesos_maintenance. (We may wish to explore if there are valid reasons to add additional settings, in which case we may wish to have an enum setting, rather than a toggle).