You can use qn to quit with exit status n - but to make that useful, you will also need to use some Branching and Flow Control:
branch conditionally (that is: jump to a label) only if a
command has succeeded since the last input line was read or another
conditional branch was taken.
It is probably best to choose a value for n that is distinct from one of the standard exit status values:
An exit status of zero indicates success, and a nonzero value
indicates failure. GNU 'sed' returns the following exit status error
Invalid command, invalid syntax, invalid regular expression or a
GNU 'sed' extension command used with '--posix'.
One or more of the input file specified on the command line could
not be opened (e.g. if a file is not found, or read permission is
denied). Processing continued with other files.
An I/O error, or a serious processing error during runtime, GNU
'sed' aborted immediately.
So for example
$ echo "foo.bar" | sed 's/bar.*$//; t; q42' ; echo $?
$ echo "foo.bar" | sed 's/baz.*$//; t; q42' ; echo $?
If you want to omit the default printing of the pattern space, then replace
Q (note that
Q is a GNU extension).