You are on the right track here but with a slight misunderstanding. Not sure how you think it would increase it by 10 fold..
I was thinking of changing the ack mode to manual and commit after every batch no matter how long it takes (of course less than the max.poll.interval) but this will increase the # of offset commits by 10 fold
You don't have to commit all the messages in the batch. you only need to commit the last offset of the batch. Which means 1 commit per batch. If the way you process messages makes it lose the order, then you could retrieve the "max" offset of a batch and commit that at the end of batch processing. This approach is what I have used and works well.