As with almost everything else the time zones are influenced by politics.
The center of each time zone is some integral multiple of 15° west of the Greenwich meridian (0°) and each time zone should ideally extend an equal distance east and west of that center meridian.
The center of the Eastern time zone is at 75° W longitude (or about 9 miles east of Philadelphia), and the center of the Central time zone is at 90° W longitude (or 3.5 miles east of Memphis, TN and 3 miles east of Bessemer, MI.)
So in fact all of Michigan is closer to the 90° meridian than the 75° meridian (by about 42.6 miles as measured from Port Huron, and all the more so for the western end of da UP).
Thus the entire state of Michigan would more logically belong in the Central time zone. Except for the usual "political considerations". Observing Eastern time in the Keweenaw tends to make sunset appear "later" in the day than it should.
Of course the relatively northern latitude of the Keweenaw (at the northernmost point of the Keweenaw, about 4.25 miles west of Copper Harbor, 47° 28' 50" N latitude) also contributes to the late sunsets in the summer. Heck, far enough north (above the Arctic Circle (66° 33' 39" N latitude) and you'd have 24 hours of sunlight in the summer!