I'm an only designer in a company where we are developing about 9 to 12 smartphone and tablet applications at once with about 120 developers. I can tell you, that it very depends on how do you communicates with the developers. There are no two same team or developer. One maybe likes to slice and cut PSD files himself. One likes to get everything properly sliced, named, in different sizes etc.
First of all: you don't have to make a non retina version mockups. It is totally worthless because these are low fidelity "versions" of your "vision" and later it makes difficult to add changes.
I think, it is also not necessary to deliver mockups for every screen state. Writing a good UX documentation can be more effective. Developers are not designers. They have to understand you. You have to write down / explain nearly everything. (After 2nd, 3rd project they start to get familiar with your process and vica versa.)
When you making the design it is also better and faster to make a UI kit with button states, menus, icons, pictograms etc. and write down everything in a UI documentation. (Font sizes, icon sizes, ratio, color codes, interactions etc.) It is faster to generate different size versions from this UI kit from Photoshop or Illustrator or add changes later.
Conclusion: understand the project > mockups > design > ready to use elements
- first you have to understand them and the OS you are designing to (guidelines).
- than you have to make low fidelity mockups about the vision you understand from the specification, documentation.
- it is also good to make a low fidelity prototype for product owners, because usually they don't know too much about how smartphones are working.
- than you can make few design concepts and the UI kit.
- and in the last step you have to generate different sizes from every element because believe me, they will find you time to time to make small changes or add something new to your design.