1 – No, its not possible to have a setting that varies according to user role. Its a server-level setting so can only function for your entire site. Its not even possible to have different settings for different trees.
2 – It already exists. Administration > Site administration > Session timeout. You need to set it in seconds (i.e. setting it as 7200 means 2 hours (2 * 60 * 60))