Acho que nao ha necessidade de criar uma nova interface funcional com o mesmo comportamento da java.util.function.Supplier.
public class RecordConsumerProvider<K, V> {
    public void run(final Supplier<RecordConsumer<K, V>> factory) {
        final var recordConsumer = factory.get();
        new KafkaConsumerService<>(
                recordConsumer.getGroupId(),
                recordConsumer.getTopic(),
                recordConsumer.getValueType(),
                recordConsumer::process
        )
                .poll();
    }
}
No exemplo acima o resultado eh o mesmo e fica mais claro e facil de entender para quem olha o codigo.