Brian Zwahr uses ansi-term in Emacs for his shell work but found that there were a few things about it that he didn't like. Being Emacs, those things were pretty easy to fix and he posted about his fixes.
He begins with a bit of Elisp that kills the ansi-term buffer when the shell exits. This isn't a huge thing but it is annoying to have the now useless buffer hanging around so this is a worthwhile change.
At the other end, he arranges for ansi-term to automatically use his preferred shell. That way he doesn't have to specify it every time he starts an ansi-term.
Zwahr noticed that when he pasted something into the buffer with 【Ctrl+y】 the shell didn't see it. Again, a bit of Elisp fixed that.
Finally, there were a couple of display issues, one involving the solarized color theme, that required tweaking.
I prefer eshell for most of my shell work and just call up iterm2 when I need to do something that eshell doesn't handle well but if you like the ansi-term solution, you should definitely give Zwahr's post a read. You may want to grab some of his fixes.