ICANN now requires that registrars place an expired domain name in the REDEMPTION-PERIOD status for at least 30 days. During this time, the current "owner" can renew the domain and the domain is not available to anyone else. The registrar can charge an additional fee for this.
When a domain expires, the Registry will automatically renew the domain for one year and charge the Registrar. The Registrar has 45 days in which to cancel the renewal and get a refund. The upshot of this is that there is pressure on the Registrar to drop the name within 45 days.
After the domain has been at the REDEMPTION-PERIOD status for at least 30 days, the Registrar can elect to drop the name. When they do this, it will go into a status of PENDING-DELETE. It will keep this status for 5 days (I might be off on the number of days, but it is a set amount of time).
An exception to the above time periods occurs when there are Name Servers utilizing the domain name. In that case, Registrars are encouraged to keep the domain ACTIVE for a longer period. Exactly how long isn't stipulated by ICANN. (at least I haven't seen it anywhere)
It seems like an excrutiatingly long process when you are waiting for a domain to drop. However, if you are responsible for keeping domains renewed, and you have to deal with corporate-world foot dragging, it makes sense.