Ответ, данный ранее, опускает очень много важных деталей, и, в целом, неверен.
Основная причина в том, что SMS доставляется заметно медленнее, чем сообщение в интернет-мессенджерах связано с тем, что процесс доставки в случае SMS существенно сложнее и длиннее. Вызвано это тем, что инфраструктура GSM сложнее и решает ряд задач, которых в случае интернета просто не существует.
Например, в случае мессенджеров и доставки сообщения в них, обычно получатель уже присутствует в сети, у него есть постоянный и неизменный, хотя бы на время сессии, адрес и соединение с его компьютером уже установлено. Кроме того, центральный сервер мессенджера как правило единый (или это группа тесно связанных сервисов).
В случае же мобильного телефона его владелец может мчаться на поезде со скоростью 100 км/ч, каждые несколько десятков секунд переключаясь между "базовыми станциями". Он может сесть в самолет в Голландии, а выйти из него в Бразилии. Поэтому сети, часто, совсем непросто найти адрес, по которому нужно доставить сообщение адресату.
Если "на пальцах", и опуская подробности, то все происходит примерно так: мобильный телефон при включении устанавливает связь с "базовой станцией" GSM, передавая туда свой идентификатор: "Эй, я +7916......, меня можно найти тут". Базовая станция идет в сеть мобильного оператора: "Эй, биллинг, тут у меня появился наш клиент, номер +7916....., есть что для него?". Системы сотовой сети оператора смотрят: "Ага, есть для него SMS, принимай!". А тут, допустим, клиент едет, и переключился на новую станцию, а старая при этом об этом не знает, телефон ей ничего не сказал, сигнал упал, и все, пошло переключение, и телефон уже зарегистрировался на новой станции. При этом старая уже пытается передавать SMS, но клиент ее уже не слышит. Новая станция также объявляет сети оператора, что клиент у нее. Но она вынуждена ждать, пока первая станция не убедится, что связи у нее уже нет.
Как вы понимаете, все еще сложнее, когда телефон в роуминге. То есть свое присутствие он должен объявить сперва локальной сети, а она уже должна связаться с сетью его домашнего оператора, и объявить, что "ваш клиент у нас, шлите сообщения нам для него"
Наконец, не стоит забывать, что SMS для мобильных сетей это "побочная нагрузка", и если сеть сильно загружена, она может выставить приоритет передаче голосового трафика перед SMS (и то и другое загружает каналы и занимает ресурсы оборудования).
Да, воистину, вы правы. Про переключение между станциями я, в-принципе, подумал, но про их разнородность - нет.