I don't see why it shouldn't work, and it almost does.
Some parameters seem to cause issues though. This works:
dm log "clear";
signon _001 sascmd="!sascmd" ;
data _null_;
call sleep(5,1);
put "==> Wait for signon 1";
run;
rsubmit _001 wait=no macvar=JOB001 signonwait=y persist=n ;
data _null_;
put "==> Rsubmit on _001 ok";
run;
signon _002 sascmd="!sascmd" ;
data _null_;
call sleep(5,1);
put "==> Wait for signon 2";
run;
libname rwork server=_002 slibref=work;
******rsubmit _002 wait=no signonwait=y persist=n ;
rsubmit _002 wait=yes;************* works with this change ;
data _null_;
put "==> Rsubmit on _002 ok";
run;
endrsubmit ;
endrsubmit ;