Проблема не с установленным тайм-аутом.
Когда вы делаете window.open, он блокируется блокировщиком, но если вы посмотрите на возвращаемые данные, myWindow будет пустым объектом. Следовательно, это означает, что вы попадете в другую часть if else.
Измените код на:
var myWindow = window.open("", '_blank');
if (Object.keys(myWindow).length !== 0) {
window.setTimeout(function () {
myWindow.document.write(text);
myWindow.focus();
myWindow.document.title = name;
}, 100);
} else {
showWarning({message: 'popup is blocked')});
}