In a large pot or deep-bottomed skillet, heat butter on medium heat and add your onion slices. Add olive oil and stir to coat the onion with the oil. Sauté the onion until tender and translucent, about 10-20 minutes. If you have more time, you can sauté the onions until caramelized, for about 30-40 minutes.
Add garlic, ginger, curry powder, chili bean paste, and sauté until flavors have enhanced (around 2 minutes). Then add flavored and prepared vegan beef strips and sautés for 5-15 minutes and stir occasionally. (The more time you invest, the more flavorful the dish gets - but I fully understand when you have to take the short route and only sautés for 5 minutes.)
Add vegetables, water, vegetable broth, bay leaves, and soy sauce. It should be just enough liquid to cover the ingredients. Bring to a boil, cover, and let simmer for 30 minutes up to 2 hours. If you have time and simmer for longer than 30 minutes stir occasionally.
Once the ingredients are all tender, add the curry roux. Stir and let 2 pieces of curry roux dissolve completely. Then, if needed, add another few pieces. Adjust the amount of the curry roux to your taste and how fast it thickens the sauce (you may not need to use all the roux). If the curry is too thick for your taste, add water to dilute. From this point, simmer on the lowest heat and stir often, and be careful not to burn the curry!
Add milk and mix thoroughly. Let your curry simmer until heated through entirely. If the curry is too thin: simmer, uncovered (no lid), stirring occasionally until it reached desired thickness. Serve the curry with Japanese steamed rice and optional top with fukujinzuke (Japanese styled pickled vegetables).