Mining will go on forever, however new blocks will stop being created somewhere around 2130, if my memory serves. (Actually 2140, just checked)
The transaction fees are currently virtually unnecessary, but when Bitcoin becomes more popular and/or the blocks grow in number, transactions will slow down. But, you can include a voluntary transaction fee that will make miners want to process your transaction due to its value, and that will speed up your transaction. Miners will receive transaction fees, though no new blocks will be created.
That is of course assuming the world as we know it is still around in 2140, for all we know both USD and BTC will have been abolished and our minds will be uploaded into a hive network.
