When you have an HKWorkoutSession started on watchOS6 and call session.pause() it does not change the state to .paused and it stays at .running and therefore does not call the delegate that the state has changed, because it hasn't, and it breaks the app. This issue does not occur on watchOS5, only on watchOS6.
HKWorkoutSession State does not update
Are you running this on simulator? Sometimes the methods to change state react really slowly on sim, but not real device. I've had to wait upwards to 15 seconds when calling .stopActivity(date) on the session.