Will be the GCM deliver the notifications immediately ( no delay ) even when the device is sleeping ?
Yes, You can set the priority of a message as a High priority.
GCM attempts to deliver high priority
messages immediately, allowing the GCM service to wake a sleeping device
when possible and open a network connection to your app server. Apps with instant messaging, chat, or voice call alerts, for example, generally need to open a network connection and make sure GCM delivers the message to the device without delay. Set high priority
only if the message is time-critical and requires the user’s immediate interaction, and beware that setting your messages to high priority
contributes more to battery drain compared to normal priority messages.
Will notification wake the device immediately ?
It is been answered in the description above :)
There will be about 2-3, up to 20 notifications per second, will this cause an issue ?
I think this SO questions can help you with that question.
Will be there any cost of the service with these requirements ?
From Google Cloud Messaging: Overview
Google Cloud Messaging (GCM) is a free service that enables developers to send messages between servers and client apps. This includes downstream messages from servers to client apps, and upstream messages from client apps to servers.
Just take NOTE that Firebase Cloud Messaging
(FCM) is the new
version of GCM. It inherits the reliable and scalable GCM
infrastructure, plus new features! If you
are integrating messaging in a new app, start with FCM. GCM users are
strongly recommended to upgrade to FCM, in order to benefit from new
FCM features today and in the future.