Then would it make sense to have it always deliver its values on the main thread? I.e., if the subscription is created on the main thread, the signal could check `NSThread.currentThread == NSThread.mainThread` and deliver the current value synchronously if true, otherwise the current value (and all future values) will be delivered on the main thread?

(Only suggested to make the "all future values on the main thread" guarantee consistent with the initial value.)