I had a lot of issues optimizing CMSF2 but it runs very fine now.
Some tips...
-Make sure threaded optimization is OFF on your Nvidia control panel.
-One of the biggest issue's I had is with tree foilage. Do you notice any performance difference between say Passage at Wilcox (loads of tree's) & Day at the Beach (only a few palm tree's)? Does performance significantly improve for you if you turn the "tree-trunks" only option on (Alt-T)?
-Model Quality is probably the biggest resource hog... Have you made sure to set it to balanced, fast or fastest? You can change the Model Quality via the options screen AND change it in-game with Shift+[ & Shift+].
-Consider "boosting" your system & optimizing it for CM with a 3rd-party program. I use an older version of Razer Cortex...
https://game-booster.soft32.com/old-version/
-I'd also check out this excellent post by DeutschRitter...