Hello Roro!
#1 doesn't sound quite right; "up to/until 9pm" is too slippery for the future perfect. The peg slides back and forth in a groove. You have to hammer it firmly into the space-time continuum instead:
1. By 9pm, I will have been slaving away for hours.
That gives you the peg (9pm) from which you can stretch back your completed action (slaving).
2. Up to 9pm, I will be slaving away for hours.
Here you have a conflict between the two time references. 'Up to 9pm' is specific, as regards the time frame; but 'for time unit' is non-specific.
While #3 is fine!
See you later,
MrP