It turns out we may still want to use TaskChain for its locking
behaviour, so I've made it internally use the refactored version I
implemented, while keeping the general structure.
Covers all small changes into one commit:
- Remove generics and use `double` type instead.
- Make the component immutable and not enumerable for simplicity of it's worth.
- Make the component more-specific (to time period tracking)
- Apply small adjustments to the component