Add support for nested jobs, caching, and performance enhancements for job status updates

These interfaces should live in the Interface namespace