I got this, which is much shorter:.
[FEN ""]
1. a4 a5 2. b4 b5 3. c4 c5 4. d4 d5
5. e4 e5 6. f4 f5 7. g4 g5 8. h4 h5
9. bxa5 Bd6 10. axb5 Be6 11. dxc5 Nf6 12. cxd5 O-O
13. fxe5 Rf7 14. exf5 Ra6 15. gxh5 Rb7 16. hxg5 Rbb6
17. bxa6 Nc6 18. axb6 Qe7 19. dxc6 Kh8 20. cxd6 Ng8
21. a7 Qf6 22. gxf6 Ne7 23. b7 Bd7 24. e6 Ng8
25. c7 Kh7 26. f7 Kg7 27. e7 Kf6 28. h6 Ke5
29. f6 Kf5 30. a8=Q Kg6 31. b8=Q Ba4 32. c8=Q Bb5
33. f8=Q Bc4 34. d7 Bd5 35. d8=Q Be4 36. f7 Bf5
37. e8=Q Bd7 38. h7 Bc6 39. h8=Q Bb7 40. Qcxb7 Kf5
41. fxg8=Q#
It's one move above the lower bound, but I feel that this is optimal.
It is optimal. See proof in comments.
AN EDITOR'S UPDATE: As @Evargalo noted in a comment for it not to be lostsuggested, here is @user1583209's proof for the optimality of this orlp's proof game. A correction of the word rank to the word file has been done, as noted by @Rosie F in a commentoptimality from their comments.
"I have a proof now: Start by labeling the columns/files by numbers, i.e. a=1, b=2...h=8. Then for each pawn calculate the sum of the respective files. So in the initial position this sum is 1+2+3...+8=36. Now, if a pawn captures, it changes its file by "1" (either plus or minus 1). In order to achieve a solution in 40 moves, we have to queen the pawns on each of the squares on the 8th rank. This means that in the final position the sum of files (for pawns+promoted pawns now) needs to be 36 again. However we also need to do 15 captures with these pawns.
Each Each capture changing the file sum by 1, it is impossible to end up with 36 as sum, basically because 15 is an odd number. (If you have x captures to the left and y captures to the right you end up with equations: x-y=0 and x+y=15 which has no integer solution) That proves that it is impossible to achieve a solution in 40 moves and the solution with 41 moves given by orlp is optimal."
-user1583209.