Try this:
1) Queries allow you to refresh every X seconds and also allow you to use a process to refresh. So, set a timer query to refresh every second. The timer could display an attribute in LoggedInRegularUser
2) When an exam is started, store the start time in LoggedInRegularUser.
3) Another attribute in LoggedInRegularUser would contain the time left.
4) When the process that auto refreshes from the timer query runs, it could update the time left attribute in the LoggedInRegularUser
5) The process could also set a Y/N flag that indicates if there is time left. As answers to questions submitted by the user, you could check the Y/N flag to determine if it should be accepted.
6) The process that auto refreshes the query could also present a VP that shows time has expired as well as any other info you want to display on that VP.
Note that step #5 may not really be necessary with the existence of #6, but it is a double check.