I’m not sure Lee could have promoted the good ones and fired bozos like McClernand any faster than actually happened, at least beyond the point that Grant was in charge of Western operations. There was a great deal of politics in giving our generalships, to an extent that by today’s standards would be inconceivably unprofessional. Jacksonian democracy was still a prevailing concept in American political life, and appointing a politician like McClernand to a generalship was just an expected part of that. Grant really, really, really wanted to fire McClernand, but it wasn’t politically possible until later in the war when
A) McClernand gave him a technical reason to, and
B) The sheer size of the Union Army and the bleak reality of massive war was such that people were more accepting of making decisions based on the professional needs of an army.