A Three-Day Battle At Pearl Harbor? Check Out "The Battle at Dawn"
I'm still self-banned from the alternate-history forum, but logged out I can still view the public sections. In the Post-1900 forum there's a new thread entitled "The Battle At Dawn: The First Battle Between The United States and Japan Dec. 7-10, 1941."
The divergence from our history is that Admiral James O. Richardson, who vocally opposed moving the U.S. Pacific Fleet from San Francisco to Pearl Harbor and was relieved of his position as commander in chief of the U.S. fleet as a result, is summoned to Washington by Secretary of the Navy Frank Knox, who persuades Richardson to keep his mouth shut. Knox, Richardson, and Roosevelt meet and agree that although the Pacific Fleet must remain at Pearl Harbor, the base's defenses will be strengthened.
(Richardson thought the fleet too vulnerable to air-sea attack where it was, a position that was ultimately vindicated.)
Richardson is given a partial demotion that ends up being better for everybody--he's placed in direct command of the Pacific Fleet in preparation to face the Japanese threat. Admiral Husband Kimmel, who was relieved of command of the Pacific Fleet in actual history due to Pearl Harbor, is sent to command the Atlantic Fleet in the undeclared naval war against Germany.
As a result of Richardson--who helped create War Plan Orange to deal with a possible war with Japan--commanding the defense of Hawaii, the U.S. is much more prepared for the Japanese attack when it comes. This might not be an unmitigated blessing, however--if the U.S. fleet left Pearl Harbor to face the Japanese in deep water, every sunk ship would have been lost for good (many ships sunk at Pearl were raised afterward) and many more lives would have been lost. The situation could have gotten so bad that Admiral Chester Nimitz said the fleet not sortieing was "God's blessing."
At this point in the timeline the bloodied but angry Pacific Fleet is about to face the Japanese Combined Fleet near Midway Island (the Battle of Midway is coming early this time, but there's no guarantee who'll win), so we'll have to see how that goes...