Se fai due chiamate le cose si complicano, perchè ci sono due readyState.

Devi fare richieste sincrone e controllare tutt'e due le variabili.

codice:
function checkusername(){
    ...
    hr.open("POST", "prova.php", false );//terzo parametro settato a false (richiesta sincrona)
    ...
    var oku = hr.responseText; 
    ...
}

function checkmail(){
    ...
    hr.open("POST", "prova.php", false );//terzo parametro settato a false (richiesta sincrona)
    ...
   var okm = hr.responseText; 

    ...
}

bottonereg(okm,oku);

function bottonereg(okm, oku){ 
if ((okm == "Ok")&&(oku == "Ok")){ 
(codice inner bottoni) 
} 
}