Already possible. Just set client to subscribe some topic and send messages to that topic.
Now every device that is subscribed will get the message. Although very little prevents someone else also posting to that topic.
Same thing. If an user starts your app you'll know it. Get the "messages" from your server's db directly. Or use FCM. In your app you can decide not to show a notification but store it until the user uses you app again. How? Send data messages only.
This is not really relevant and only adds confusion. If you use the B4J code to send messages then they will be intercepted in the service and will allow the developer to choose what to do with the message.