An alternative would be to make PxP a special case, in which no promotion can take place. Other pieces capturing a P could still promote, as could a P capturing another piece.
I tried modifying ChessV to play with this alteration and the results definitely look better. Before, the players would glob up in the center but both sides would try hard not to capture anything. This version still seems to have some significant moving about before captures start, but then play looks pretty normal. (I haven't studied the games in any detail.)
Here's a typical ChessV self-play game with the new restriction. Game runs for 84 moves before white mates. The first capture is on move 18.
I tried modifying ChessV to play with this alteration and the results definitely look better. Before, the players would glob up in the center but both sides would try hard not to capture anything. This version still seems to have some significant moving about before captures start, but then play looks pretty normal. (I haven't studied the games in any detail.)
Here's a typical ChessV self-play game with the new restriction. Game runs for 84 moves before white mates. The first capture is on move 18.
e2e4 e7e5 g1f3 b8c6 b1c3 d7d6 f1b5 c8d7 d2d3 f7f5 e1g1 d8e7 a2a4 e8c8 a1a3 g8f6 d1d2 c6d4 b5c4 c7c5 b2b3 d7c6 f1e1 c8d7 c1b2 g7g6 a4a5 d8a8 h2h4 a8d8 g1h1 e7e6 f3g5 d6d5 g5e6 d4e6 c3d5 c6d5 b2e5 d5c4 e5f6 c4a6 f6h8 f8e7 h8e5 e7h4 d2e3 h7h5 a3a4 d8f8 d3d4 h4g5 g2g3 g5h6 f2f4 f8c8 d4c5 c8c5 a4a2 c5c8 e1d1 d7e7 d1d6 a6b5 d6e6 e7e6 c2c4 b5c6 a2e2 c8d8 h1h2 h6f8 e3d4 a7a6 e5h8 d8d4 e4f5 e6f5 h8d4 f8b4 e2e5 f5g4 d4b6 g4f3 e5e3 f3g4 e3e6 g4f5 e6e5 f5f6 b6d8 f6f7 h2h3 c6f3 h3h4 f3d1 c4c5 d1g4 e5e7 f7f8 e7b7 b4c5 b3b4 c5d4 h4g5 g4f5 d8b6 d4c3 b6c5 f8g8 b7b6 c3e1 g5h4 e1c3 b6a6 f5d3 a6e6 d3f5 e6e5 g8g7 h4g5 f5c2 e5e7 g7g8 a5a6 c3h8 e7e8 g8h7 c5d6 h8g7 d6e5 g7e5 f4e5 c2d3 e8e7 h7g8 a6a7 g8f8 g5f6 d3e4 e5e6 f8g8 e7g7 g8h8 g7g6 h8h7 g6g7 h7h8 g7g5 e4c2 g5h5 h8g8 e6e7 c2b3 g3g4 b3a2 h5g5 g8h8 e7f7 a2b1 g5h5 b1h7 f7g7 h8g8 g4g5 h7b1 h5h8
You can download as a ChessV saved game file here. The include file to make ChessV play with these rules is here.