1)
а) ОС "регистрирует" приложение на серверах APNS\GCM\MPNS и получает Device Token.
б) Приложение получает данный Device Token и должно передать его на ваш сервер (для его дальнейшего использования)
в) Нужно послать Push: используя ранее полученный Device Token передаете своё Push-сообщение на APNS\GCM\MPNS, который в свою очередь отправляет на указанный Device Token ваше Push
Можно использовать еще промежуточный сервис для пероверки актуальности Device Token (так как приложение могло быть переустановлено)
2)
appsfire.com
https://www.pushwoosh.com/
3) Не совсем понятно где событие происходит. Если событие на сайте, логично привязывать Dev Token к User'у и тянуть его.
4) Увы не подскажу