I believe that there is a bug (or a feature!) in the iOS kernel that when the battery level is low, it attempts to send commands to the battery which fail on non-genuine batteries, causing the commands to be sent repeatedly, causing the kernel to use 100% CPU and lock the phone’s UI up, and in my experience if I do manage to get a call out the audio is choppy. My solution was to find a genuine used battery from a reputable seller on eBay that deals in iPhone recycling, unfortunately with this particular seller it is pot luck to find one with a good health value.