I am old fashioned and use the menu and slide method very much like your buttons. I would not load all blocks into a dwg rather have them in a block library directory, if you wblock what you want (can be just dwg objects) you will find the dwg size shrinks immensely so making pull from server very fast, were I worked we had access to like say 200+ blocks. These were separated by menu prompts. It is very simple to make a custom menu's and the slide creation can be scripted so making say 100 at a time is not a problem.
Others will provide info about using tool palettes.