I learned a lesson today, to avoid huge dealerships for work on my bike and find little shops like this one (All Makes Cycles in Delray Beach, for the record). The dealership guys looked at it and decided it needed a $400 service before they'd even look at what the specific problem was. Sean, the founder/owner/mechanic at this shop, identified three specific problems - the air filter was saturated with oil, the chain was shot and the spark plugs were bad - and fixed those. I haven't taken it on the highway yet but it seems to be riding really smoothly. The knocking and power problems are gone. I'll only really know in a few days but my bet is he did a great job.
We're going out to dinner now, then I'm watching election results live all night.