2. ZNC has plugins for push messages, or at least it did when I was using it several years ago. My personal bouncer was configured to automatically set my away status when I went offline; alternatives include (de)voicing (in)active users, changing nickname, etc. When my bouncer had no clients connected and someone sent me a pm, it was configured to send a message to Pushbullet.
If you're not using a bouncer or the bouncer is down, services packages such as anope may include a memoserv for sending messages to offline users; on services login, memoserv will notify you of pending messages.