Hey guys, I'm back! Finally. ;)
It's actually not overly difficult to time when an app starts and ends, for the most part, so it can be done, even with emulators. The trick is that often times, games will contain more than one EXE. For example, a launcher EXE, and an EXE for the actual game. So what can happen is that the launcher EXE is used to start the game, then fires off a new EXE for the game, and then LaunchBox will think that the game isn't running anymore, when it is. There are similar related issues as well.
That said, even Steam struggles with some of these issues, but they do it anyways. So I'll put it on my list to implement it as best I can, knowing that it can't ever be 100% accurate. I think the problem games would most likely be the exceptions, but that's really just a guess as I haven't done much experimentation.
I think emulated games would work, so long as you can assume that the emulator will be closed after the game is done, and a different game won't be loaded up inside the emulator.
Even still, I personally find it a bit lacking, because if I pause a game, even for long periods of time, the play time is still increasing. But Steam does the same thing, I think.