My MBP has had the same problem, I fixed it by using a piece of electrical insulation tape on the ribbon wire, where it enters the case. Of course you have to remove the topcase for this, but its easy.
No trouble since then.
In my case, there were a lot of USB errors in the log files. Have you checked yours? (using console.app)