The answer given by @VonC is, IMO, the best way to create a stream based on an arbitrary time in the past that is not referenced by a baseline.
To answer your second question "Is it possible to create either a baseline or snapshot at any time other than the current state of the component/stream?"
Baseline - no. Baselines record the current state of the component.
Snapshot - If you have no baselines to refer to, then there is no way to create a snapshot that points to some point in the past. However, if a component baseline exists, it is possible to create a snapshot that points to this baseline even if changes have occurred in the component since this baseline. Here's how:
Say baselines BLN1 and BLN2 are two baselines on component COMP that record different states of this component (BLN2 being the latest). To create a snapshot SNP1 on the stream my_stream that encapsulates BLN1, you'd do the following:
- Create a new stream (call it test_stream) and add component COMP @ BLN1
- Create the snapshot SNP1 on test_stream: select BLN1 for baseline value.
- Delete this new stream test_stream - at which point you will be asked to move the snapshot SNP1 to another stream. Choose my_stream.
- Once test_stream is deleted, the orphaned snapshot SNP1 find a new home in my_stream and also points to the older baseline BLN1.
This works in RTC v4.0.3 - if you use a different version of RTC, you may want to try this out in a test project area first.