We consider a quite general model of multi-user scheduling over a time-varying wireless environment, which in particular includes the option of serving multiple users simultaneously. Finite number N of input flows are served in discrete time by a "switch." Switch state m follows a finite state discrete time Markov chain. In each state m, the switch can choose a scheduling decision k from a finite set K(m); each scheduling decision has the associated vector of service rates at which queues are served. It has been established in previous work that a simple MaxWeight discipline provides the maximum possible stability region, i.e., makes input queues stable if this is feasible at all. MaxWeight always chooses a decision maximizing the sum of queue service rates weighted by their queue lengths. In this work we consider the system under heavy load, and show that MaxWeight exhibits very nice optimality and "self-organizing" properties. Namely, under a very natural non-degeneracy condition, MaxWeight minimizes system "workload" and keeps queue lengths proportional to their "workload contributions."