Don't nest Org syntax inside your LaTeX files. Do it the other way around instead: nest LaTeX syntax in code blocks inside Org files, add each of those Org files to org-agenda-files, and tangle (export) the nested LaTeX code to pure-LaTeX files whenever you need to build. Don't worry if that means you're creating Org files that are 99% LaTeX; Org will handle ...
Instead of just rely on the done/not done state, you can specify for each task if you should record a timestamp on entering/leaving it. The relevant bit from C-h v org-todo-keywords is
Each keyword may also specify if a timestamp or a note should be
recorded when entering or leaving the state, by adding additional
characters in the parenthesis after the ...
The doc says:
The second possibility is to use TODO keywords to indicate different
types of action items. For example, you might want to indicate that
items are for “work” or “home”. Or, when you work with several people
on a single project, you might want to assign action items directly to
persons, by using their names as TODO keywords. This type of
Add something like the following code at the end of your init file:
(setq inhibit-splash-screen t)
(org-agenda nil "t")
I had to inhibit the splash screen, otherwise it hid the global TODO list.
I adapted the function from this answer to a similar question, which works fantastically and even respects selections :)
(defun org-todo-region ()
(let ((scope (if mark-active 'region 'tree))
(org-map-entries (lambda () (org-todo state)) nil scope)))
This function should cover the first cases (comment delimiter followed by " TODO: ")
(defun insert-todo ()
(insert comment-start " TODO: "))
This one covers the org-mode case:
(defun org-insert-todo ()
(insert "** TODO "))
You could bind them to a key combination ...
Documentation: Face used to indicate that a headline is DONE. This
face is only used if `org-fontify-done-headline' is set. If applies
to the part of the headline after the DONE keyword.
IOW you have to set org-fontify-done-headline to nil.