Ваш второй подход должен быть в порядке, в соответствии с документами (http://api.jquery.com/delay/)
Другим подходом может быть использование функции обратного вызова, которая вызывается после завершения fadeIn:
$('#' + uMessage).fadeIn("fast", function() { $(this).delay(1000).fadeOut("slow"); });
просто предположение
Редактировать:
Если вы не можете использовать метод delay (), вы можете попробовать этот:
$('#' + uMessage).fadeIn("fast", function() {
c_obj = $(this);
window.setTimeout(function() { $(c_obj).fadeOut("slow"); }, 1000);
});
Вот пример: http://jsfiddle.net/KwWFR/