When clicking the launch button in Dagit, we set the button to a "submitting" state, but we currently just use a 300ms timeout to change the button back to its original state. The problem is that sometimes the launch behavior takes more than 300ms, and to the user it appears that nothing has happened while they wait for the launch to begin.
To repair this, make the onClick behavior an async function and keep the "submitting" state in place until the async function completes. In this way, if a request is made by the launch, we will wait for it to complete before changing the state back.