You may access the currently active session in userland code. In order to do this,
inject SessionInterface and NOT just the Session object.
The former will be a unique instance (singleton) representing the current session
while the latter would be a completely new session instance!
You can use the Session Manager for accessing sessions which are not currently
active.
Note that Flow's bootstrap (that is, Neos\Flow\Core\Scripts) will try to resume
a possibly existing session automatically. If a session could be resumed during
that phase already, calling start() at a later stage will be a no-operation.