I have Lee Mac's CopyRenameBlock.lsp and it works great within the drawing. It's dang near what I want but in block library form.
My Copy/Rename Block Reference already includes logic to increment the block name and will offer the incremented result as a default - this is implemented at line 87 of the program source code (http://lee-mac.com/lisp/html/CopyRenameBlockV1-5.html). As such, replacing lines 88-95 with (setq new "") should cause the default to be automatically used, yielding the behaviour you have described.
The other thing you need to do is to check what is last number for a block then add 1. Else will start to get block exists.
Again Lee has a good parse number lisp that will pull out numbers from a string, that is provided that all blockname is A-Z, if not then make a str say last 2 characters of blockname and check for number, a Blockname-X note the - would be the best way to delimit where does number start
If your using a Menu slide library then its simple ^c^C(If (not LM:RenameBlockReference-2 ) (load "My_Copyrenameblock")) (LM:RenameBlockReference-2 t "Block_area") so the block name is passed and make changes as Lee has suggested.