FR-1: Background Polling
- The client must poll for new messages on a configurable interval (default: 10 seconds)
- Polling only occurs when the user is in the messages view (not chats list, loading, or error screens)
- Polling pauses when the OSK is open
- Polling pauses when the system menu overlay is open
- Polling must not block the main input/render loop (use non-blocking timer accumulation)