Use a single goroutine to handle notifications and execute commands so commands are always run in the correct sequence and don't interfere with each other