As I understand, the requirement is to log people out or kill the application if there was inactivity for a stipulated period.
Just to check IDLE, I created a test app with an IDLE(Procedure,5) in program setup. This gets called every 5 seconds even though I was moving my mouse. Therefore, I think IDLE itself might not be sufficient.
I had a similar requirement to log off user based on user inactivity. I did that using window API calls:
GetTickCount or GetTickCount64
The GetLastInputInfo returns the last time there was a user activity on the PC.
Inside Global Map
NOTE: GetLastInputInfo(LONG), where long is ADDRESS(LIF).
You could call these procedures in your IDLE procedure to detect last user activity take actions accordingly