I don't know if you need this advice or not, but to deal with pop in of COs that are static and simply foreground objects, I try to always create a redundant layer 0-2 tile or even gradient image to help stop the pop-in. Also, I never use water blocks for the bottom of water, I always use a tileset block of the same color because those blocks are not necessary and create more CO pop-in. You can use this with even animated COs if the way they animate is from a static object. So a fan, you might animate the blades of the fan but actually use a tile for the base of the fan that doesn't appear to move. The pop-in there would only be the blades of the fan which is a much less jarring pop-in than the entirety of a fan.
Also, you can stop all pop-in with completely filled animated blocks. This isn't something I've done but something I've thought about doing because it would work for anything that's not randomly animated from the start. You can have the 0-3 tiles or the gradient have the image that is the start of the animation and simply have the background within the CO as its animated, so the starting position where a CO might start walking already has the CO's image placed as a tile or onto the gradient and you can put the background of that screen behind the CO, as long as it's on layer 4-5, you can have no pop-in for animated objects, aside from things like water/waterfalls that have random start points or animation routines.
The only way to beat the pop-in, though, in my opinion, is to stop caring about it. It's a perfectionist ideal that could probably lead to madness.