I'm not sure I'd call this 'clever' or not. The only way I know of to do this would be to write a macro or program. I don't have any code for this handy, sorry.
In my mind it would require that a number or text field be set on the tasks where you wanted this to happen as a multiple value flag field. This is not something to do for every task, of course. Not that you are suggesting that.
The macro would:
- Look for the flagged task & select it.
- Use the SS predecessor link to find Task 1, say.
- Set the start date for the flagged task based on the predecessor task.
- Do the same thing on the FF successor.
- Look for the next flagged task ... lather, rinse, repeat ...
You might want to have values in the flag field to identify what to do about things like multiple successors or predecessors with SS / FF relationships & there would be code to deal with the different conditions if so.
This would not be too hard for the simple case presented in the OP.
Resource leveling is not a solution for this case. Without getting to far down the rabbit hole, resource leveling is just not designed to derive a tasks duration between constraints or actuals of other linked tasks.
All that said, this is one of those things a lot of PMs would likely not want to have happening automatically during project execution. But, it might be a useful tool during a schedule build or significant update. Having it in a macro that you have to trigger yourself seems okay to me ...
Thanks for the question. If this answers your question, please mark it as such. If I get some time maybe I can post some code. Don't wait for me though!