Correctly track session elements in dynamic build plan When using a dynamic build plan, all elements are passed to the queue to be enqueued, but are only actually enqueued when they become required. This moves the tracking of session elements to the first queue rather than just take everything that we pass to the queue (which would be all elements). This is only used in the UI AFAICT, and doesn't actually affect the build.