How about adding a mild training component for bots. If there is a performance issue, it could be done once per season.
And then after the draft do a roster cull.
(1) If less than 18 players, generate new players.
(2) Protect two best players at each position (or all if 2 or less players).
(3) If a position has less than two players, protect out-of-position players who would perform best from remaining players. eg if only 1 PG, scan players not protected in step 1 to find best PG among players.
(4) Determine number of players to release (N - 15)/2 rounded upward. 1/2 of released players will be older, and 1/2 will be younger. If release number is odd, last release will be regardless of age.
(5) Divide unprotected players from steps 2 and 3, into 2 groups based on age.
(6) Release (fire) weakest players in each age group.
(7) If number of releases is odd, release (fire) final player without regard to age.
(8) Supplement protected players from 2 and 3, by best player in each age group, and make these 12 players the default roster for the next season.
So the bot lineups will change a bit from season to season, and they won't become super-annuated like in HT.
Since someone will mention performance load, remember that BB generates 1000s of bot v. bot games every week.