So I'm wondering why you are all over the place changing bitrate and resolution settings. You go from 2000 bitrate, change to entirely different settings, change from 720p to 1080p, and monkey with FPS a lot.
You need to stick to one resolution, one FPS, and a general bitrate setting. Your users who view your stream and recordings expect the same quality and settings from you.
When you make radical changes like this, OBS can struggle at trying to reset to your new settings on the fly. You are always better to make the change, save to a profile, and then reboot your system.
If you don't, all sorts of crazy stuff will start to happen like what shows below:
17:41:55.994: Output 'adv_stream': Number of lagged frames due to rendering lag/stalls: 16 (0.2%)
17:41:55.994: Output 'adv_stream': Number of dropped frames due to insufficient bandwidth/connection stalls: 279 (4.4%)
17:41:55.994: [rtmp stream: 'adv_stream'] Freeing 33 remaining packets
17:41:55.999: ==== Streaming Stop ================================================
17:41:56.797: Video stopped, number of skipped frames due to encoding lag: 6276/6892 (91.1%)
For an i7 7700, GTX 1070, you should be able to do 720 at 60fps well.
1080p may give you ok results depending on the game.
Try to find a good stable baseline to work with instead of jumping all over the place.
720@60FPS
Bitrate 2500-4000 (assumes stable upload speed of 3Mbps to 5Mbps)
veryfast
Then make very minor bitrate adjustments in increments/decrements of 250 depending on your network connection. Not every day will you always get the same network upload speed. It will usually vary.