For AppMeasurement managing the library I think it's a good idea to send the version within a prop to know when the versions change in the event there's some reporting anomalies.
I discovered setting a data element to the value of the s.version only works if the beacon is sent after DOM ready.
However, if setting the prop manually within custom code, in the AA ext(enable after settings..) or page top rule this appears to work as expected.
This also works nicely for getting the RSID dynamically too by using s.account.
This isn't related to race conditions but rather scope.
The s variable is limited by scope and only available in the "Custom Code"
You can always expose the "s" variable by creating your own variable. One way to do this is by the Adobe Extension:
Then you can reference aLaunch_s.version outside of the Custom Code.