Taskjuggler. It's great, once you understood it's concept. And it can be used in a Terminal :-)
Another great software is Redmine. It's a web-based system offering a Wiki, Calendar, CVS integration, Forums and such. We used it at university to manage the creation process of a book with multiple authors, and it worked great.
GanttProject is pretty great isn't it?
Traditionally it's not usual to add task names to the actual bars on a Gantt chart - so I think you might not find what you're looking for easily.
pytaskplan is simple and works well and it's just Python code so you can adjust it how you like.
TaskJuggler is much more complex but my goto for all project management tasks.
Might be useful when a team uses Excel to track progress and sends those updates to a PM who then updates a master project plan. This is quite a common process in places that I have worked.
That being said, my experience has been that any sort of copy-paste linking between applications is that it is doomed to horrible failure.
I have gotten good mileage out of TaskJuggler which is, IMHO, better than MS Project for project planning; and it has a feature that lets team members fill out a progress sheet and it automatically tracks these progress reports in the project plan (called booking statements). TBH I've never implemented this bit myself, but it's supposed to work very well. Of course, TaskJuggler has a steep learning curve.
The class of algorithms you're talking about are called job shop scheduling optimization problems.
TaskJuggler http://www.taskjuggler.org/ says it handles this kind of scheduling, but I've never used it extensively.