I would say "not entirely" but definitely a bit of luck was involved for them. Think about it this way, even if they won 20-0, their last win of the season would have meant absolutely nothing if Dortmund won, which means that it wasn't up to Bayern that they won, it was up to Dortmund if Bayern would get the title or not.
We could consider that a bit of a luck if possible and I believe that it is going to be something unimportant at this point since the season is already over and there is nothing more to do. I do believe however that the best thing in this case for Dortmund would be to sell Jude and use that money to build a bigger depth for the squad so they do not have a situation where one player injured means a lot of rough period for them anymore.
Yes and you described this perfectly well. Actually I think we are too often looking at the last game. How many chances did Dortmund let go before the game against Mainz? First of all I think it is great to see Mainz and Cologne to play strong games even when they are not competing for anything anymore. This doesn't always happen and then there are lots of discussions, but I think this season ending was perfectly fair by all teams.
Dortmund lost the title against Bochum, Stuttgart and Schalke. They tied all three games against the 14th, 16th and 17th and against Stuttgart they conceded a goal in 97th minute when Stuttgart was one man down. They also had their chance in the game against Bayern when they played in Munich. Bayern didn't win this one, but Dortmund lost it.