UI/InGame/WorldView/ActionInfoPanel.lua and its corresponding xml file. It explicitly checks each entry in the EndTurnBlockingTypes table, so if you want to remove the end-of-turn blocking for city-states, you just need to remove the eighth entry from that IF check in the Lua file. You wouldn't even need to modify the XML.
It's a lot harder to go the other direction, though, to add a new blocker, but it could be done. I've been considering using this mechanism in my own mod for my mythology stuff; it'd be somewhat crude, but it can be done. Unfortunately, this is a very common problem I've run into: the game, internally uses a custom table (EndTurnBlockingTypes in this case, but I've run into it for YieldTypes and ResourceTypes as well), and it's not going to modify that table if you add a new entry in the corresponding gamedata XML table. It's just a big headache, although it's not so bad in this particular case because the Lua file is NOT just looping over all elements in the table, and is instead checking each, by name, one at a time.