Reentrant timer

Variant of #4, uses an 'executing' flag.

See #3