Is it possible to return content, and then also continue to do other things?

What you should do is create a variable to store all of the HTML data you wish to output with your shortcode then use return. Your code would look something like this:

<?php
// insert HTML which will be later affected by javascript
// this part is the issue! I need to return this, not echo...
// but returning ends the function before javascript can be run...
$html_out="<span id="webinartime"></span>";
$html_out .= "\n";

// Modify the PHP new date & time to match the user's local time
// and insert it into above HTML
$html_out .= "<script>
var date = new Date('" . $new_date . " UTC');
var NextWebinarTime = date.toLocaleString();
console.log(NextWebinarTime);
document.getElementById('webinartime').innerHTML = NextWebinarTime;
</script>
";

return $html_out;

}
?>

However, if you require JavaScript as part of your response the best WordPress practice would be to enqueue the script. You can learn more about that here:

https://developer.wordpress.org/reference/functions/wp_enqueue_script/

Moreover, as another user has already pointed out there is no need to make use of JavaScript for this shortcode. PHP is more than capable of completing all of the required calculations you need to output to the user.