I think an increased difficulty just means more hashes are (typically) required to create a block successfully. I don't think it should slow the actual hashing rate though...
That is correct.
And this
As it generates more heat, it will start to slow down slightly unless you have some kind of crazy fan setup or liquid cooling.
could also be correct. All newer CPU'S start throttling down their speed if they recognize a high temperature. It's a safety feature.
So mabye that's your problem. Try reading you CPUs temperature sensor out (I recommend
CoreTemp) and tell us what temperatures you have when the hashing slows down.