Many tests will break, but before I fix them just wanted to see if there are any reservations about this approach? This will allow us to have a dagster-cloud API daemon that doesn't get stuck waiting for slow schedule/sensor iterations to finish.
Each daemon starts up its own DagsterInstance now, since DagsterInstance is not multi-threaded.
The big risk is that a single thread will die and leave the daemon in a weird state. Heartbeats and surfacing error messages helps a bit with this. We could also have the controller monitor the subthreads for premature death, and kill the whole process if any individual subthread dies or stops heartbeating?