Hmm... well it's guaranteed that a given start/finish pair are on the same thread, but custom commands can willy-nilly walk on the restriction of only one TaskEngine at a time.

I can do one of two things:

1) Change this to a method that always creates a new instance
2) modify the object to "push" the current context and save the old registration.

I think #1 is probably safer, WDYT?