We had a similar problem so I wrote a custom course overview block that looks like this:
1. The plus and minus buttons show and hide the extra course information (assignments, new forum posts etc). The plus button is not displayed if there isn't any information so the student can see where stuff is hidden.
2. The eye buttons hide courses entirely. The student is informed of how many courses are hidden at the top of the course overview and can use manage hidden courses to bring them back.
3. The course filter uses information we encode in the course ids and category to filter the course list by any combination of academic year, semester/term and faculty.
All three have been developed using the moodle YUI framework and CSS, so everything happens instantly but the preferences are saved to the database for next time.
I am considering removing the bits of the course filter that are specific to our institution and making the block available as a plugin - but I suspect someone is working on a better alternative or maybe moodle core will do some of this stuff anyway.