If you have a spare ecu I would try that just incase the original one is starting to put out noise to the tach. Other that that I have only seen them fail dead (full on or off) but not off 300rpm. Broken needle means that maybe A) bad (dry) speedo cable or B) speedometer has bad bearings, ether way some thing banged that needle hard many times to break it.