Problem with CGNAT is the costs involved in bookkeeping for law enforcement.
Where an IPv4 solution for your clients only needs change-logging on IPbinding-to-client level, the CG-NAT requires you as an ISP to log every outgoing IPv4/port combination with timestamp to client mapping.
Which requires A LOT more storage and much more expensive equipment.
Going rate per IPv4 is up to $40 nowadays, selling of your v4 block might not be cost-efficient.