Hmmm, I'm wondering if you can use a calculation field that identifies the "level" of indent as a number. If so, a calculation field could return that number of tab characters followed by the task name and paragraph formatting in the Inspector could set tab stops to control the level of indent.
any text that then has to wrap to the next line might produce some messy results though....
I'll probably use a scripted button for creating a subtask. In that case, the indent number could be calculated by adding 1 to the parent task's indent number.
The tricky part, I think, will be sorting records appropriately, making sure that deleting a parent record deletes child records (or marks them complete), and finding a way to collapse subtasks - probably a combination of button scripts and portal filters.
I'll be able to test this when I get home from work.
with care, a cascading delete might be set up on the relationships graph.
Or use a delete button or custom menu delete option to run a script that both deletes the record and also manages what needs to happen to related tasks/substasks.
Here's a calculation that could generate a string of tab characters based on a field called "indentnumber"
Substitute ( 10^IndentNumber - 1 ; 9 ; Char ( 9 ) ) & " " & TaskTitleFieldHere