When things crash you should always use your debugger to find out where and possibly why.
You have a stack of unique_ptr. When you call exitState from the event handling in the pause state, the statemachine will pop the pause state from the stack and since it doesn't get further use, the unique_ptr gets destroyed and the play state with it. BUT your code execution is still in the pause state object, which is now deleted, which causes a crash.
For as long as you're rynning code in a state, you can't delete the state object.