Long time ago I wrote a python script that computes 16.4 million of consecutive (non random) public keys (not addresses) in 12.3 s.
Indeed your code is far faster compared with OP's code. I made quick comparison by editing
lowest_key=1000000 and
number_of_batches=82 on Debian VM which has Python 3.9, 4 CPU and 4 GB RAM. Anyway, here's the result.
$ time python3 citb0in.py
real 0m25.071s
user 1m23.280s
sys 0m2.203s
$ time python3 gen_batches.py
kG+mG
0xb7910c496997a7ace525bcb175d35dc3b034282c387b70b2cdb694796db5a25c
0x9616a3547332d533b59faf60bf90d37d4d90afb911b18643ec9374f3364f2a4 0x24d76dec962cad20c095c0187b65a8e0f45df6cc3fc31c15540d6d3f912c7dfa
*******
kG-mG
0xa7ac9d1c388137c4d9977de3c8a3ee7ac6d789acd79c0d14eb1f5aa99554a233
0xa4881c12ef6f2419e63ddc76bb348bdd6af6ebb42042f0a3cfe4ed5f17e2cde8 0x1dcb56a8c01408c8dd2947614bbff89e62ee735bed04f5858e104bdc168a7541
*******
You have just generated 1007862 Millions of keys!!!
real 0m1.626s
user 0m1.621s
sys 0m0.004s