I wrote a thread on how the AI decides its Approach, which is still current:
https://forums.civfanatics.com/threads/vp-diplomacy-ai-approach-opinion-demystified.645461/
I'm going to be transferring this to the wiki and adding a table explaining the opinion modifiers as well, but in the meantime, here are a few general diplomacy tips:
1) You can see the reasons for your current relationship with the AI by mousing over their visible approach (FRIENDLY/NEUTRAL/AFRAID/GUARDED/HOSTILE/DENOUNCING!/WAR!). If the visible approach is FRIENDLY (whether truthfully or just faking it), they might hide some of these modifiers, beware. You can use the Transparent Diplomacy advanced setting to show all modifiers and their numeric value.
2) The AI will rarely allow you to play a passive game free of aggression. The AI plays to win. If you're starting to anger the AI by being too far in the lead, you will notice the modifiers "Your behavior worries/angers/infuriates them." or "They fear/suspect/know you are competing with them." If you're getting close to winning the game, the AI will also get a large aggression boost, the magnitude of which is determined by difficulty level.
3) Maintain a strong military - this is one of the best ways to deter declarations of war. You can see your military power (and the power of other civs) in the score list. Your military power is increased when you have more/better units and is decreased for each city you have.
4) Make use of Declarations of Friendship and denouncements! These are the most useful diplomatic tools available to you. When the AI is willing to accept a Declaration of Friendship, they will almost always ask you, and typically you'll get some offers in the early game. You should accept at least some of them, because friends are invaluable - and you get a bonus with other leaders if they also have a DoF with them. Denouncing unpopular players will get you the support of the people who hate them, but it will piss off the people who like them - so use them carefully.
5) If you make a promise to the AI, you should generally keep it. If you make a promise and then break it, the penalty is always worse than if you ignored them.
6) If given a choice between an insulting dialogue option and a normal one, avoid the insulting option if you're trying to stay at peace. Even if they don't declare war instantly, they will be angry at you if you insult them.
Regarding the specific issues you brought up:
"I'm going for cultural victories, not being aggressive."
As mentioned, the AI plays to win. If you start getting a lot of cultural influence over them, they will respond aggressively and deny you Open Borders. You can deter some of this aggression by making sure your military is strong and upgraded; see the approach thread I linked for more information on how the AI decides how aggressive to be.
"I pretty much cooperate with all trade requests."
You can get an opinion bonus with AIs of up to +35 by giving them generous trade deals and sending trade routes to them. When the AI makes a trade offer to you, they will generally try to offer you an "Acceptable" deal which in their view does not substantially benefit them (and doesn't usually give much of a bonus). Sweetening your deals can improve their view of you a bit, and it may be worth attempting on your neighbors. There is also a bug where the AI is not properly evaluating trade deals when deciding how aggressive to be; this is being worked on.
"I try to be careful not to push close to enemy borders with my settling locations. But I still end up despised because they pushed close to my borders then got mad at how close we were..."
Most early-game wars happen because of territorial disputes, and most AIs are aggressive for land because they play to win. Unfortunately, this is mostly inevitable. However, if they ask you not to settle near them, you can avoid further diplomatic penalties by making and keeping a promise. This makes them less hostile than ignoring them, although it's not a deterrent to war.
"...or because difficult-to-avoid missions like 'accumulate the most culture' resulted in me 'stealing' their city-state allies..."
Again, the AI is competitive. You
can reduce your Influence with City-States by declaring war on them (or if your Influence is low enough, bullying them/trespassing in their lands) but that tends to have other repercussions. The fact is the AI doesn't care
how you stole their alliance, they just care that you have their alliance now and they want it back. This, unfortunately, is also mostly inevitable if you're doing really well, although rarer than disputes over land.
"...or because I'm moving troops near their borders to defend myself against another AI they aren't even allied with..."
Try to avoid keeping too many units within their sight, and try to keep them within your own lands if possible. Unless you have a large concentration of troops, it tends to make the AI more defensive than aggressive, and the malus fades relatively quickly once your troops have moved away.
"...or because my religion is passively spreading more effectively than theirs."
The AI does not get upset over passive spread of religion. They get upset if they have their own religion and you use Missionaries or Prophets to convert their cities.