The reason why gap cover is so prevalent in South Africa is due to the way in which medical aid schemes define the costs which they will cover. Technically, they do indemnify you for the full cost, however, they calculate the full cost as what you would have been charged had you gone to one of the hospitals/clinics which they are partnered with. Therefore, if you use a provider which charges rates that are higher than those which the medical aid partners charge, your medical aid will not cover the full cost of your medical bill, hence the need for gap cover.
As far as I am aware, those are both different names for the same thing.
PMI covers any medical costs (subject to Ts&Cs) incurred by the policyholder.
Income Protection will pay out a lump sum or annuity if you lose your income due to an illness or disability.
Critical Illness will pay out a lump sum or annuity if you are diagnosed with one of the specified medical conditions.
LTC covers the medical costs specifically associated with aging and having to go into a long term care facility.
Either type of product can be included as a rider benefit on the other, the main difference between the two is the event which triggers the benefit payment. Life/survival for life insurance and the diagnosis of a specific illness for critical illness insurance.