Timing of different events independently

@larryd's tutorial implements most of what it seems you need. Naturally, there'll be tweaks and you'll have to modify the state machine control but, a lot of the grunt work is already done.