How to create recoil that's not instant?

^ This.

Another approach is to use vector curves for both the impulse and recovery.