У меня тоже была эта проблема: setTimeout не работал, точно так же, как обратные вызовы и отложенный jQuery.
Решение, которое я придумал, (с jQuery):
$( "#inputId" ).focus().focus();
2x фокус.Работает без каких-либо недостатков везде, где я тестировал.
Редактировать:
Также убедитесь, что фокусируемый ввод виден.
В противном случае IE выдаст исключение.