I was playing a game against one of the chess.com bots, as shown below (I was playing as white). On analysing the game afterwards, I'm aware I made a lot of mistakes, but the one I'm really confused by is move 29.
[FEN ""] [Event "Vs. Computer"] [Site "Chess.com"] [Date "2021-12-03"] [White "ZsigE"] [Black "Jimmy"] [Result "1-0"] [StartPly "57"] [Termination "ZsigE won by checkmate"] 1. e4 e5 2. f3 Nf6 3. Nc3 Nc6 4. d3 Bb4 5. Bd2 a6 6. Be2 h5 7. Nh3 Nd5 8. Nxd5 b5 9. Nxb4 Qf6 10. Nd5 Nb4 11. Nxf6+ gxf6 12. Bxb4 c6 13. Qd2 Ra7 14. Bc5 Rc7 15. Qb4 d5 16. Bd6 c5 17. Qa5 Rd7 18. Bxc5 f5 19. O-O-O fxe4 20. fxe4 Rh7 21. Ng5 Rh8 22. Qb6 d4 23. Qb8 Rh6 24. Qxc8+ Rd8 25. Qb7 Rd7 26. Qa8+ Rd8 27. Qa7 Rd7 28. Qa8+ Rd8 29. Qd5 Rxd5 30. exd5 h4 31. Rhf1 f5 32. Rxf5 Kd8 33. Nf7+ Kc8 34. Nxh6 h3 35. gxh3 a5 36. Rf7 e4 37. dxe4 d3 38. Bxd3 Kd8 39. Rg1 Ke8 40. Rg8# 1-0
Stockfish claims that before
29. Qd5 I had a couple of different forced mates available, but all of them require black to play rdd6 at some point - for example,
29.Qb7 rd7 30.Qb8+ rd8 31.Qc7 rdd6 32.Bxd6 rxd6 33.Qxd6 h4 34.Bh5 h3 35.Bxf7# and
29.Qa7 rdd6 30.Qb8+ kd7 31.Qb7+ ke8 32.Qc8+ ke7 33.Qc7+ ke8 34.Bxd6 rxd6 35.Qxd6 h4 36.Bh5 h3 37.Bxf7#.
I can't work out why black apparently has to play
rdd6 at any point. If I were in his position, down by that amount of material, I would happily bounce my rook between d7 and d8 until the Queen takes the rook (and gets taken by the King), goes to d5 to at least take the rook out with it (as I eventually decided to do), or ends up drawing by threefold repetition.
Is this just a quirk of engines, that they will never consider playing for a draw even if it's their best realistic outcome, or am I missing something? (Also - in that position, is there a way of saving the Queen?)