Is the built in physics good enough to make a simple billiards game?

In most physics engines, you need three things to happen:

  1. You need to “bleed” off a small
    amount of the linear velocity each
    tick
  2. You need to “bleed” off a small
    amount of the angular velocity each
    tick.
  3. You need to detect when a body
    has “slow enough” movement, and
    freeze/sleep it

If you forget any one of those bits, it won’t work well. My guess is you’re forgetting 2.