Change transcode control flow

Move more into models, change contexts.
Add FutureOps.when* functions, convenient wrappers to .on*.
Fix duration display for unpositioned assets (sort of)