Option 4) Use SP Designer
I've been able to do this before with just SP Designer. There are two things to do here. One, displaying comments that have been added and two, providing a box for people to add comments.
This blog post here: http://blogs.msdn.com/b/sharepointdesigner/archive/2008/03/26/sharepoint-conference-building-a-sharepoint-designer-mashup-part-1.aspx has helped me in the past add comments to the bottom of a page. Just create a list with a lookup column and follow the directions in the blog post to display all comments for the item you are currently viewing.
Here's some of what I wrote on an internal blog post explaining my experiences in creating the ability to add comments at the bottom of a page which I think could be helpful. In this case it was a list of ideas.
I still needed it to come back to the page I was on. After submitting the comment it was wanting to go back to the full list of ideas. I found this forum post: http://social.msdn.microsoft.com/Forums/en-US/sharepointdevelopment/thread/7aff3de2-4250-47ac-9175-2fdc0a685005/ which worked exactly like I needed it to.
The editing of comments ended up turning into its own animal. First of all when I went to edit a comment, it was displaying the drop down box where I could assign the comment to a different idea. I didn't want this to be shown. But I wanted things to be easy and use the default sharepoint control and not go down the route of creating a new list form webpart like I did for the add comment. I found this post: http://sharepointsherpa.com/2008/08/26/sharepoint-2007-hiding-fields-on-newformaspx-and-editformaspx-the-easy-way/ which when added to the page, hid that row of data with ease.
I also had the issue when editing comments that it wouldn't take me back to the previous page I was on. It kept sending me to the main list of ideas. If you add an onclick event like this: onclick="GoToLink(this); return false;" to your anchor tags, then sharepoint will add a source querystring parameter to the url and the page will return to that source parameter. I ended up copying some of the gotolink code from the core.js onto the bottom of my page so that it would force the source to be the current url. Once that was done, I was returning nicely to the page I was previous at."