Again I am not sure why it matters what numbers are used. I would also push back on that requirement to see if there is any basis for it.
You can always renumber.
proc sort data=test;
by usubjid aellt astdt fake_end ;
run;
data step1 ;
set test ;
by usubjid aellt ;
if first.usubjid then GROUP=0;
if first.aellt or (astdt > lag(aendt)) then GROUP+1;
run;
proc sql ;
create table renumber as
select usubjid,GROUP,aellt,min(astdt) as first_date format=date9.
from step1
group by usubjid,GROUP,aellt
order by usubjid,first_date,aellt
;
quit;
data renumber;
set renumber;
by usubjid first_date aellt;
if first.usubjid then AJOINID=0;
AJOINID+1;
keep usubjid GROUP AJOINID;
run;
proc sort data=renumber;
by usubjid group;
run;
data want;
merge step1 renumber;
by usubjid group;
run;
proc sort data=want;
by usubjid astdt aellt fake_end ;
run;
proc print;
run;