When you set a resource to 50% units, MS project will not “automatically” schedule that resource to more than 4 hours per day. However, when you select backload contour, MS Project will spread out the hours accordingly in order to keep that resource from working more than 50%(4 hours per day) . So by default, a 5 day task requiring 20 hours of work for a resource at 50%.
As you can see, MS project keeps the resource from working more than 4 hours in a day, so the only way to keep the 20 hours of work is to extend the duration, which MS Project will do. There is no way to keep the duration of a 20 hour task with a resource assigned at 50% to 5 days if you choose backloaded. You can fix this by reducing the duration back down to five, but then that causes that resource to work more than 4 hours a day or 50%, which MS project will show that resource as being over allocated.
So you have options, either 1.allow MS project to extend the duration accordingly, 2. lower the duration back down to 5(which will show over-allocation), 3. change the work contour back to flat to keep the duration and work at 5 and 20, 4, reduce the number of hours/work assigned, 5. raise the resource units to something higher than 50%
I know that doesn’t solve or fix your problem, but I hope I answered/expained your question.