I think I usually use 'ensure' instead of 'assure', but maybe we could go with a more wordy but clear method name; assure makes me think this variant does try/catch and the other's done.  emitAtFirstListener, maybe?  I think that captures the main reason you would use this function even though it might be misleading about what we're doing in the case where we already have 3 listeners or something.