Roaming Pokemon make my blood pressure soar. I spent ages working on catching Latias in Sapphire, got it's HP down to 2 or 3, and literally dozens of times, it popped out of the pokeball regardless. I never did catch it, and I haven't gone out of my way to catch a roaming Pokemon since. I'm not the biggest fan of catching legendary pokemon anyway, but Latias is one of my favorite pokemon, so I made an exception.
I would make it so that you get at least four or five turns before it flees, instead of only one turn. And agreed, if it's asleep or paralyzed, it should be locked into battle before it can flee. I wouldn't care if they were in the next generation of games, but unless I'm desperate for something to do, I'm not going to bother with them.