I really like the idea of a true wave system:
1) Every program reviews applications for x weeks, decides on invite/wait list/reject. Then on say, October 15th, EVERY program emails EVERY applicant to either invite them to interview, to wait list, or to reject them. Then applicants have 2 weeks to schedule and reject interview offers. Applicants at this point can send out letters of interest to programs they really care about, but were not invited to yet.
2) Programs then have an additional 2 weeks to plan out their next invitations/wait list/rejections, so, on November 15th, EVERY program emails EVERY remaining applicant to either invite them to interview, to continue to wait list, or to reject them.
3) Repeat for one more wave on December 15th.
4) After 3 full waves of this process, invitations/wait lists/rejections can be free form and programs are free to send invitations or rejections in any manner they see fit.
Ideally we could cap applicants to holding 15-20 scheduled interviews at a time (exception for people couple's matching should be made). So if you have 20 interviews scheduled and the 2nd wave comes in and you receive 10 more interviews, you have 2 weeks to decide which 10 to cancel. People will still over-apply, but it will force a uniform, synchronized system to alleviate the difficulties and anxiety for both parties. Those with very few interviews initially should hopefully receive a generous amount in the 2nd and 3rd wave, with the free form interviews afterward allowing for additional last minute shuffling and new interviews.