Preheat your oven to 180 degrees C (355 F).
In a medium frying pan, heat the oil and fry the bacon and onion until slightly caramelised (8-10 minutes). Turn out onto some paper towel to drain any excess oil and set aside.
In a pot of salted boiling water, cook the pasta until very al dente. Drain and set aside. (See Note 4.)
In the same saucepan you cooked the pasta, melt the butter over medium-high heat. Add in the flour and using a whisk, stir well. Cook for 1 minute to avoid a floury taste.
Add in half the milk, whisking constantly to avoid lumps forming. Add the remaining milk.
Cook for 4-6 minutes, stirring regularly, until a pouring cream consistency is reached.
Remove from heat, and whisk in the cheese. Add the bacon and onion mixture and pasta, and season to taste.
Grease a 20cm (8 inch) square baking dish and add the pasta mixture to the dish.
In a small frying pan, melt the remaining butter and once melted, mix through the panko breadcrumbs. Top the pasta with the breadcrumbs.
Bake in the preheated oven for 20 minutes or until golden on top. Allow the pasta to sit for 5 minutes before serving. Enjoy!