The thing that I bet was never done.....valve adjustment. If you check your owner's manual, valve clearances should be checked/adjusted every year or 200 hours, whichever comes first. I think I may have seen something about the hours being extended to 400, but I can not find the reference at this time.
So much for preaching.
I just had a 150 (same same motor as yours except it has VTEC) with the same issue and about the same number of hours. The customer did his own maintenance. The difference is that it was hitting 6000 rpms. It had a stumble and miss at idle, but ran good otherwise (per the customer).
Did the basics like cleaning IAC and making sure debris etc was not blocking intake. Also cleaned the throttle body. Changed all fuel filters and ran it on shop tank.
Checked the spark plugs (which we changed in the end - because the customer just recently installed them and tried to adjust the gaps and bent the electrodes.) Expensive mistake. They looked good otherwise.
Did a compression test. Compression was down on all cylinders. Did a leakdown and all had some leakage through the rings and exhaust. The leakages varied from 15% to around 40%. Checked the valve clearances and all of the exhaust clearances were tight. Made those adjustments and then ran the engine under load with a decarbonizing solution with Yamaha Ring Free.
A couple of 20 minute sessions brought the leakdown to where it should be and compression was back up.
We changed the oil and filter.
Now the engine idles as it should.
I don't know if that will fix your issue, but I certainly recommend trying to decarbinize the engine before you jump into too many other expensive fixes. In the past, I have used Sea Foam, but from suggestions on this forum, I got a bottle of Ring Free from a local Yamaha dealer, and that stuff is like "Snake Oil". It is expensive, but works! Be sure to change the oil after you are finished to remove the contaminates.
I also assume that the thermostats were ok and getting the engine up to proper operating temperature. I would assume that your mechanic would have checked this with Dr. H or HDS while the engine was running.
The guys at Honda will help your mechanic zero in a little better on the problem and how to solve it.
It does sound like you should have had a smaller pitch prop on it from the get go to get the rpms up.
Mike