I don't run a law office, but I run my own small translation business and am so far using this pretty successfully.
1 - Yes, you can definitely keep a list of clients, and even make it more fine grained.
2 - Yes, you can keep track of time spent of clients and projects.
3 - Yes, you can track completion of a project and it can also be flagged as late if you wish.
As far as invoicing, you currently can't within OpenGoo, however, if you have MySQL installed (which you would if you are using OpenGoo), there are several options available to you. I currently am using a package called OpenCoin, which is offered by my hosting company. It's pretty complete for what it is, and you can have PDFs automatically created and emailed to the client.
As far as tracking costs, you can't currently do that, but if you are working off an hourly billing rate, you can easily calculate costs using the track tasks/milestones function. I don't know of any way to actually track other tangible expenses within OpenGoo. Again, any invoice package would be able to handle that.
R.
==