When using Null blocking, the content of gravity.list is pushed into DNSmasq to form the table. This is done once for IPv4 and then for IPv6 and so doubling the size of the table.
Why not only push IPv4 into the table and omit IPv6. Would this save memory and if so then on a hit, the blocking result is doubled only then to a IPv4 and a IPv6 null address returned to the client.
Remebering writing earlier about this and then I think the problem was that Pi-hole could not manipulate the reply by DNSmasq. If manuplilation is possible now, then you could think of putting a nxdomain in and translate that to what user choose to be returned, blocking page, Null or nxdomain.