iOS 4 runs great on my 3GS. Well, actually I do sometimes see times when it doesn't respond to my touch for a few seconds, but then clears up, and I presume that's a bug. I mostly notice it in the Facebook app, but I've seen it happen in Safari too, albeit to a lesser extent.
In spite of that, it's a big improvement over the previous OS and the multitasking works great with apps that support it, the numbers of which are growing. Yesterday I was using the NPR app to stream audio while using Copilot Live to navigate. Just for fun I tried then jumping out of Copilot too, and both kept working.
Actually, Copilot has some bugs with it's multitasking support. It basically only works in the background if you set it to play it's navigation voice at the same volume as music. If you set it to quiet the music or to mute music, you don't get the voice navigation in the background. I hope they fix it soon, but for now I've got it set to same volume and that works. Copilot has some other dumb issues, though. For example if you download a map update it tells you to restart the app. I'll bet a high percentage of people out there don't know how to manually restart an app that multitasks in iOS 4! Why does it even need you to restart the app? Why can't it just load the updated map?
I am nervously, I must admit, awaiting my iPhone 4. I know that 99% of the comments in discussion and forums are from people who don't have an iPhone 4 and are just restating what they saw restated 100 times before by other non-iPhone users, but obviously the problem is out there. Engadget said that one of their iPhone 4's had the reception (not holding it right) issue, but their other ones did not. Maybe they just haven't seen it happen and at some point it will - I don't know. I'm hoping that the issue is a manufacturing defect, and that it will be fixed. Apple has always, it seems to me, had their share of issues with defects, especially with initial shipments. My first 3GS died on me, but the replacement has worked perfectly. At least they have a great exchange policy.