I would have thought that the improvemets in OL 2.12 would have sorted tile queueing issues like this. Our application used to be the same but with the OL 2.12 upgrade it sorted it. You could try one fo the following;
1) Upgrade to OL 2.13 - Improvements were made to the tile queueing system. I don't know how much of an impact this will have but it might be a quick and easy way to solve some problems. OL 2.13 also includes animated zooming which is quite nice.
2) Change the mousewheel interval - As in this example you could change the time OpenLayers waits between mousewheel 'clicks' to perform it's zoom end action (load the tiles at this zoom). You do this when declaring your map controls, for example;
new OpenLayers.Control.Navigation({
"zoomWheelEnabled": true,
"mouseWheelOptions": {
"interval": 250,
"cumulative": true
}
})
3) You could also look into setting up your own TileManager. All I can do here is provide a link to the OL docs on this because I have never needed to or wanted to touch this. Consider it a last resort. - OpenLayers.TileManager
Hope this helps.