Hey Naga,
For question1, I have seen this behavior before when the user has multiple concurrent logins but if you can confirm this isn't the case, I would try and capture network and console logs from an affected user (easier said than done when its a intermittent behavior) when this happens and raise a case with customer support.
For question 2, there are a couple of reasons this can happen. When the client/browser loses connection to the internet, by default, if its longer than 60 seconds before it reconnects it sets status to available, this is due to if the user was in an on-queue status and lost connection, you probably wouldn't want them to receive a call as soon as the internet re-connected as they may not be ready for it. If the user is locking their system, this could be caused by the system or browser sleep settings causing a disconnect. You can either adjust these or you can change the default restore previous presence setting for the whole org.
------------------------------
Samuel Jillard
Online Community Manager/Moderator
Genesys - Employees
------------------------------