We had the same problem and didn't find a satisfying solution.
So we started building our own: ScreenAware.
For now it's "just" time tracking. We will add connections to billing services soon and maybe in the future even offer our own billing service.
The idea is that once you have set it up (which won't take long), it will track your time and automatically assign it to your projects. So you don't ever have to hit start/stop buttons or fill in time sheets at the end of the day or week. You just work.
With the automatic tracking and project recognition, ScreenAware is able to report the time worked on a project with much more accuracy. It won't ever forget to hist start, it won't ever estimate when you began a task or ended it. And it will track all work for your projects, including writing emails, billing, meetings and so on.
The basic technology for tracking screen time is already done. Right now we just need to tweak a bit the project recognition and improve our dashboard/report frontend.
For that we're looking for beta users that will help us to figure out what's the right thing to build. After all, we don't want to have a solution just for us - we want a solution for a lot of people (and earn some money in the process :) ).
If you are interested in joining the beta program, just send me a message or sign up at https://app.screenaware.com/#/welcome and start tracking your time automatically.