Refcounting comes with its own in-thread gc pauses whenever you exit a block or context and the local variables are collected.
PyPy now lets you control where memory management happens. Making it possible to control worst case performance. For many production apps this is a big deal.
You also cannot disable the minor collections in PyPy, only the major collections, but once the JIT kicks in PyPy can prevent some of the object churn by optimizing instances away.