potresti fare cosi:

codice:
hover = false;
focus = false;
$("#idbutton").click(function(){
  $("#prova").css("background-color","red");
  
  $("#prova").focus(function() {        
   if(!hover) $(this).css("background-color","yellow");   
   focus = true;
}); 
  
  $("#prova").focusout(function() {        
   if(!hover) $(this).css("background-color","red"); 
    focus = false;
  }); 
  
  $("#prova").hover(function() {        
   $(this).css("background-color","blue"); 
   hover=true;    
  });    
  
  $("#prova").mouseout(function() {        
    if(!focus) $(this).css("background-color","red");   
    else $(this).css("background-color","yellow");
    hover=false;
  });
});
fai attenzione che modificando l'ordine delle istruzioni css cambia anche il comportamento della textbox, l'ultima istruzione ha sempre la precedenza, infatti come tu hai detto "se dò il focus e lascio il mouse all'interno lo sfondo è sempre blue" se inverti le ultime due righe del css invece vedrai che "se dò il focus e lascio il mouse all'interno lo sfondo è giallo (invece che blu)".