In my opinion, the way you are getting the page thumbnail is the best way to get it. As this call to page thumbail, takes care of all fallbacks required if the page does not consist of its own thumbnail. The thumbnail is returned for the page in the following order:
1. if page has its own thumbail i.e image node under jcr:content node of page, that is returned
2. if above does not present, it goes to page template and get page template thumbnail. It means you can set default thumnail of page as template thumnail
3. if above does not exist, return thumbnail exists on "/libs/cq/ui/widgets/themes/default/icons/240x180/page.png"
There is a servlet that takes care of this logic "com.day.cq.wcm.core.impl.servlets.ThumbnailServlet"