Batch Delete with checkpoint still causes log growth
First step is to ask SQL Server why the log grows. You should find the answer in the log_reuse_wait_desc column in the sys.databases catalog view. Being in simple mode, it shouldn't be log backup. Then take it from there.
And don't do it all in one transaction, since SQL Server can't truncate past the oldest open transaction.