[SOLVED] After a year of this being on my bucket list without any suitable answers on the forums I have finally sorted this!
The trick here is to hard-code the layout_width and layout_height of the TextView larger than the text will ever be - e.g. 100dp x 100dp.
Then place the TextView in a FrameLayout and turn clipping off for the FrameLayout android:clipChildren="false" and clip to padding off for the TextView android:clipToPadding="false":
TextView with hard-coded height and width
The TextView will now float in the FrameLayout. Use the TextView gravity settings to move the Text within it's boundary.
Then use the layout_gravity settings to move the boundary within the parent FrameLayout within it:
Here is an example of right and bottom aligned text rotated through -90 degrees:
Solution example
[UPDATE] Example XML for a frame view housing rotated text: