Billable contract is a contract in name only. In reality, it's an implementation of Stripe subscriptions.
If you want to support other payment options, I would suggest not using Cashier. Cashier is fundamentally designed for Stripe payments only.
Alternatively, you could use Cashier as your Stripe implementation, and maybe connect it to your own billing interface via an adaptor. But honestly, once you've gone to the trouble of creating your own vendor-neutral payment logic, you might as well just write your own Stripe implementation.
You absolutely can have implementations for multiple payment gateways, but you will need to sort out your core payment logic.
That means you will need to decide what basic operations are required/supported in your payment system. For example, I have decided that a user must be able to cancel their subscription without leaving my website. This becomes part of my SubscriptionManagerInterface, and any implementations must provide that feature.