If they are truly gone, then a 410 would be the best option for you. Since they are indexed even if there are no links pointing at them, people can still find them besed upon what they are searching for. You never know when your link will show up, because you dont know how long google is going to take to get rid of the links.
http://www.checkupdown.com/status/E410.html
"The 410 error is primarily intended to assist the task of Web maintenance by notifying the client system that the resource is intentionally unavailable and that the Web server wants remote links to the URL to be removed. Such an event is common for URLs which are effectively dead i.e. were deliberately time-limited or simply orphaned. The Web server has complete discretion as to how long it provides the 410 error before switching to another error such as 404"
We did this for a client that needed old defunct pages removed. Once you set the pages to return a 410, and use Google url removal tool, you should see them dropping off really quick. (all of ours were gone within a month) Having that many pages return a 404 may be hurting the experience of your users as when they see a 404, they go right for the back button.