For the first question, I don't know of anything off the top of my head. For the second, you could use a script attached to the book to set a variable upon activation. That is the only way I know to detect a book read, or at least, opened. The variable could be global, which would probably be the easiest way to handle it, or you could have it change a variable in the script the needs to detect it, but that gets a bit more complicated.
Edit: If TR has any global scripts that never stop, you could check for them.