No, OTA updates cannot update the SDK version because that involves changes to native code.
When you publish your SDK 40 version, the existing apps will not see it. Only when the user downloads the SDK 40 version from the App Store will they be able to see SDK 40 OTA updates.
If in future you want to publish a test version and you do not want your real users’ apps to download it you can publish the test version to a different release channel (e.g. “test”). When you’re happy with it and want the users’ apps to download the OTA update you can “promote” it to the “default” release channel.
EDIT: To be clear, existing installs will not break while the app store approvals are pending, because they will not see the OTA update because it’s for a different SDK.
e.g. from here:
Please note - if you wish to update the SDK version of your app, or make any of the these changes, you’ll need to rebuild your app with
expo build:* command and upload the binary file to the appropriate app store (see the docs here).
See also What version of the app will my users get?