Hi,
1- You could use contracts or quotes as well. Both could have an ending date, which could be alerted through custom views before it.
2- As you know contracts in CRM has three types to bill the customer: 1- Case numbers 2- Coverage times 3- Total amount of work (hours) spent. So, the third option may cover your requirement with slight adjustments. Since your requirement could be unique,
you could write a plugin on your own.
3- Sure! There are lots of third party customer portal solutions for Dynamics CRM 2013. I always use solutions of
this link. But you could search to find solutions which could match your requirements.
Finally, based on your questions I suggest to call a Microsoft partner in your area to get helped better.
Iranian Dynamics CRM Association | انجمن متخصصان ایرانی