I presume when you said ‘OpenStreetMap gets pretty close’ you meant the maps on the OSM website?

OpenStreetMap is a database, with vector data. That means you can take that, and do whatever actual map generation you want with it. Which means you can set up your own map generation, with the zoom levels/resolution you require for your project.

For instance: this pages details how the mapnik renderer is used to generate the default map that you see when you go to osm.org: http://wiki.openstreetmap.org/wiki/Mapnik and once you’ve set up mapnik, you can have it generate your desired bbox in a resolution of your liking.