In a small saucepan, heat the milk, 1/3 cup sugar, butter and salt; stir until sugar is dissolved. Set aside. In a small bowl, combine the yeast, warm water and remaining sugar; let stand for 5 minutes.
In a large bowl, combine the milk and yeast mixtures, eggs and 3 cups flour; beat until smooth. Add enough remaining flour to form a soft dough. Turn out onto a lightly floured surface and knead until smooth, about 6-8 minutes. Place dough in a greased bowl, turning once to grease top. Cover and let rise until doubled, about 1 hour.
Meanwhile, in a bowl, combine the sugars, flour and cinnamon; cut in cold butter until mixture resembles coarse crumbs; set topping aside. Punch dough down; divide in half. Pat or roll each portion to fit a greased 9-in. round baking pan. With a fork, pierce tops; sprinkle with topping. Cover and let rise in a warm place until doubled, about 1 hour.
Bake at 350° for 20-25 minutes. Remove from pans and cool on wire racks. For filling, in a small saucepan, combine flour and milk until smooth. Cook and stir for 1-2 minutes or until thickened; cool. In a small bowl, cream butter and sugar until light and fluffy. Beat in vanilla. Add flour mixture; beat until fluffy. Split each cake into two horizontal layers; spread each with half the filling. Refrigerate until serving. Yield: 2 cakes.