I have had this happen to me before (varying lengths of time stayed). Sometimes it just happens, there are lots of reasons for it which are unimportant. However, if he left the keys, you're good. You still need to change the locks just in case. Get it re-rented.
Now, I've never had anyone tell me they would pay until I found a new tenant but I'd certainly take him up on it while not expecting it to actually happen. Sometimes, the easy way is just easier. Hold his deposit as you can turn that into income as a violation of the lease if you let him know that you're doing that by letter. I'd say do this: Tell him that you'll take him up on his offer and you'll hold his deposit until you know what the final tally will be and you can let him know if the deposit doesn't cover what he owes, he'll owe the difference (I'd cap it at 2 months total rent. Any more and no judge would uphold that claim). You may never get more than the deposit but it's better than nothing. I think you'll find that trying to go after him for more if he doesn't pay isn't worth your time and energy.
In my case, all my leases have a 2-month penalty for breaking them. I send a letter saying you owe 2 months rent. I let them know their deposit can apply toward that if they'd wish (if I don't have to use it for anything beyond normal wear and tear). I then let them know what's owed after that. After a month, I turn it over to the collection agency. They will take a % of course, but it's not worth my time to be the collector for that. All I spend is maybe an hour and if the collection agency gets it, great, if not, ok too.
Now, I have a lot of units so if I didn't use that process, I'd waste too much time with very little return (I may collect 1 of 5 if I'm lucky).
Now the caveat is to check all your local laws around deposits and such to make sure what I said is allowed, but it is where I invest.