Robust and extensible task implementations of synchronous finite state machines