Hello,
Have looked again at 14 ...d5, and the line you gave, seems like you are right that white can cause problems there.
What I did notice, when looking through Semko/Delchev book is that the 10c4 line can transpose to your game. In other words after,
1.e4 c5 2.Nf3 e6 3.d4 cd 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be2 a6 7.0-0 Nf6 8.Be3 Bb4 9.Na4 Be7 10.c4, after 10Nb6 Rb8 is recommended by Delchev,
10 ... Nxe4 11 Nxc6, the other approach were could give the story of keeping more "bits on" with 11c5 is more common in high level games,
11 ... bxc6 12 Qd4 Nf6 13 Nb6 Rb8 when 14NxB QxB 15 c5 transposes to your game, whilst after 14 c5 d6 immediately is recommended. You could say that 14NxB is a typical lower rated novelty. Going to that effort to remove black's bad bishop does not look like an improvement. Anyway, it gives a clue that your play was fine up to move 15. Fritz suggests here 15... Qb7, so that if 16Bf4 Qb4. Then, one line is 16 Bd3 0.0 17 Qh4 Qxb2 18 Bxh7+ Nxh7 19 Qxe7 Nf6. The story now is white is not getting a bind, and struggling to find compensation for the pawn. It is amusing to look at the stories I put to bad moves earlier in the thread, suppose that's what weakies like me do. If the above, is at all close to the truth, then the conclusion is, your game continuation is an inferior version of the 10c4 pawn sac line.
It is interesting to speculate if your opponent was deliberately tricky, with moves like 10Nb6, or got lucky with a shakey memory of the 10c4 line

.
At the same time at looking at this, had a quick look at 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 Nf6 8.0-0 Bb4
9.Na4 Be7 10.Nxc6 bxc6 11.Nb6 Rb8 12.Nxc8 Qxc8 13.Bd4 0-0 from Anand v Polgar. Later in the game saw the eye catching advice of, keeping the queens on, and staying completely passive. How often do you see advice like that

. Not suprisingly the main recommendation is the more active 13 ...c5.
Bye John S