Variable task duration driven by dependencies

I have a task (say task #1) that has its start driven by a F->S dependency from a previous task (say task #2). It is also dependent on another task (#3) completing, but that is not needed at its start, so I set that dependency as F->F with a for example +6w time. If task #3 is delayed, this ends up correctly shifting the end of task #1, but also shifts its beginning. I would like its beginning to stay fixed at end of task #2, and thus having a variable duration. Is that feasible without breaking up task #1 into sub-tasks?