On iOS the background of the status bar is the same color as the navigation bar (iOS 7+). Or to be more correct, the status bar has a transparent background, and the content of the app covers the screen area under the status bar. Since the menu in Gmail (and often in apps in general) has another color, it looks weird to have the status bar with a completely different background on the left and right of the screen, and might even make readability hard if the background of the menu is a close match to the status bar text color.
On Android, however, the status bar has its own color, separate from the action bar. It is therefore easier to slide in something from the side without messing up the readability and looks of the app.
Regarding the second question, I would say that it depends a lot on how your app is designed. If you have a hamburger menu or a tab based application, notifications can be delivered in a less flashy way by having a badge number on the menu icon or appropriate tab, indicating the number of new chat messages. With that being said, I have not found anything in Apple's Human Interface Guidelines indicating that you should avoid using in-app banner notifications. As for Android, they have one statement that could be relevant in some cases:
Don't create a notification if the relevant new information is
currently on screen. Instead, use the UI of the application itself to
notify the user of new information directly in context. For instance,
a chat application should not create system notifications while the
user is actively chatting with another user.