each preset msg is coded to show the msgbox then turn off the timer:
Gui,3: show,,%Custom1% ;this pops up the msgbox, no?
SetTimer, logchanges, off ;this turns off the timer
i don't really know, but it seems to me that the easiest explanation for it working under old AHK but not AHK_L is that AHK popped up the msgbox first but for some reason AHK_L turns off the timer first, so a new window, albeit one created by this program, doesn't get logged.
if just popping up a new window isn't going to work under AHK_L, we could have each of the 8 presets call a subroutine that ends the previous timer and logs the result, and starts a new timer for the preset. unfortunately i don't find one. i think Brett intended to make one out of the Logchanges sub, he has a comment ";move this section as a gosub", that does what each preset message would have to do. but i don't know how to do that.