The best choice depends on the situation.
Unfortunately there is no clear winner, so you'll have to weigh the pros and cons. I only included dips (when you pick up a few levels in a class, this is in contrast to builds that split more evenly) and only dual-class multiclassing. It is possible that the best build for your specific campaign and playstyle is a mixture of three or more classes, but this should provide some idea of what benefit you gain from each class.
To start with, we need a baseline to compare to.
Pure Rogue
As a pure rogue, these are the ranges available to you:
$$ \begin{array}{ccc}
\text{Level}&\text{Number of Chances}&\text{To-Hit Bonus}&\text{Damage}\\
1&2&5&\text{1d6}\\
3&2&5&\text{2d6}\\
4&2&6&\text{2d6}\\
5&2&7&\text{3d6}\\
7&2&7&\text{4d6}\\
8&2&8&\text{4d6}\\
9&2&9&\text{5d6}\\
11&2&9&\text{6d6}\\
13&2&10&\text{7d6}\\
15&2&10&\text{8d6}\\
17&2&11&\text{9d6}\\
19&2&11&\text{10d6}\\
\end{array}$$
There is no multiclassing option that can keep up with the Sneak Attack damage here (save perhaps Champion fighter or Hexblade warlock if you can get Advantage often and score critical hits). The reason to multiclass is to increase the Number of Chances to hit or the To-hit Bonus.
Also, staying as a pure Rogue gives you the capstone level 20 ability that guarantees a hit once between short rests.
Now let's look at the options you suggest...
Bladesinger 2
The Bladesinger does not provide any bonuses to the to-hit bonus, the Sneak Attack damage, or the number of chances to hit, but it does increase your ability to maintain concentration on haste. As such, the best time to invest in Bladesinger is after level 13 when you gain access to level 3 spells as an Arcane Trickster. As such, you get this new table:
$$ \begin{array}{ccc}
\text{Level}&\text{Number of Chances}&\text{To-Hit Bonus}&\text{Damage}\\
1&2&5&\text{1d6}\\
3&2&5&\text{2d6}\\
4&2&6&\text{2d6}\\
5&2&7&\text{3d6}\\
7&2&7&\text{4d6}\\
8&2&8&\text{4d6}\\
9&2&9&\text{5d6}\\
11&2&9&\text{6d6}\\
13&2&10&\text{7d6}\\
15&\text{2 (3 during } haste\text{)}&10&\text{7d6}\\
17&\text{2 (3 during } haste\text{)}&11&\text{8d6}\\
19&\text{2 (3 during } haste\text{)}&11&\text{9d6}\\
\end{array}$$
Whether it is worth it to slow down your progression into Rogue to increase your ability to maintain Concentration on haste is something you'd have to decide. Bladesinger and haste also add Intelligence and 2 to your AC respectively.
Bladesinger 5
Alternatively, you could grab haste much earlier from the wizard class. If you collect the wizard levels immediately after becoming an Arcane Trickster, you get this table:
$$ \begin{array}{ccc}
\text{Level}&\text{Number of Chances}&\text{To-Hit Bonus}&\text{Damage}\\
1&2&5&\text{1d6}\\
3&2&5&\text{2d6}\\
5&2&6&\text{2d6}\\
7&2&7&\text{2d6}\\
8&\text{2 (3 during } haste\text{)}&7&\text{2d6}\\
9&\text{2 (3 during } haste\text{)}&9&\text{2d6}\\
10&\text{2 (3 during } haste\text{)}&9&\text{3d6}\\
12&\text{2 (3 during } haste\text{)}&9&\text{4d6}\\
13&\text{2 (3 during } haste\text{)}&10&\text{4d6}\\
14&\text{2 (3 during } haste\text{)}&10&\text{5d6}\\
16&\text{2 (3 during } haste\text{)}&10&\text{6d6}\\
17&\text{2 (3 during } haste\text{)}&11&\text{6d6}\\
18&\text{2 (3 during } haste\text{)}&11&\text{7d6}\\
20&\text{2 (3 during } haste\text{)}&11&\text{8d6}\\
\end{array}$$
This option is useful if you expect to be up against the occasional enemy that is very hard to hit (in which case the extra attack from haste is more valuable than the extra damage on only 2 attacks that you might miss), and you don't expect to need the extra damage from Sneak Attack against those enemies that aren't hard to hit.
Bladesinger 6
Putting one more level into Bladesinger gives you Extra Attack, but severely delays the Sneak Attack damage. You get this table:
$$ \begin{array}{ccc}
\text{Level}&\text{Number of Chances}&\text{To-Hit Bonus}&\text{Damage}\\
1&2&5&\text{1d6}\\
3&2&5&\text{2d6}\\
5&2&6&\text{2d6}\\
7&2&7&\text{2d6}\\
8&\text{2 (3 during } haste\text{)}&7&\text{2d6}\\
9&\text{3 (4 during } haste\text{)}&8&\text{2d6}\\
10&\text{3 (4 during } haste\text{)}&9&\text{2d6}\\
11&\text{3 (4 during } haste\text{)}&9&\text{3d6}\\
13&\text{3 (4 during } haste\text{)}&10&\text{4d6}\\
15&\text{3 (4 during } haste\text{)}&10&\text{5d6}\\
17&\text{3 (4 during } haste\text{)}&11&\text{6d6}\\
19&\text{3 (4 during } haste\text{)}&11&\text{7d6}\\
\end{array}$$
This is a good option if the Extra Attack feature is meaningful. Some cases for this include if you are up against a lot of enemies with high armor classes, and if it is beneficial for a magic weapon you collect.
Fighter 2
The reason to dip into Fighter with your criteria would be for Action Surge. Action Surge is very similar in this case to the reason haste is used. Extra chances against hard to hit enemies. However, you can pick it up much sooner than haste, but it doesn't provide its benefit for multiple rounds. Here's the table:
$$ \begin{array}{ccc}
\text{Level}&\text{Number of Chances}&\text{To-Hit Bonus}&\text{Damage}\\
1&2&5&\text{1d6}\\
3&2&5&\text{2d6}\\
5&\text{2 (3 with Action Surge)}&6&\text{2d6}\\
6&\text{2 (3 with Action Surge)}&7&\text{2d6}\\
7&\text{2 (3 with Action Surge)}&7&\text{3d6}\\
9&\text{2 (3 with Action Surge)}&8&\text{4d6}\\
10&\text{2 (3 with Action Surge)}&9&\text{4d6}\\
11&\text{2 (3 with Action Surge)}&9&\text{5d6}\\
13&\text{2 (3 with Action Surge)}&10&\text{6d6}\\
15&\text{2 (3 with Action Surge)}&10&\text{7d6}\\
17&\text{2 (3 with Action Surge)}&11&\text{8d6}\\
19&\text{2 (3 with Action Surge)}&11&\text{9d6}\\
\end{array}$$
This is better than the haste options in Bladesinger in that it requires less investment or levels to reach the extra attack chance, but you get less extra attacks overall. As such, it is best with high AC, but low HP enemies (or if an extra action matters for some other reason). Fighter also grants proficiency in shields if you decide you'd prefer the extra AC to the extra attack with your second weapon. Additionally, if you start with 1 level of fighter, you could have heavy armor proficiency.
Fighter 5
Similar to Bladesinger 6, this is a choice to go for Extra Attack. It requires one less level than the Bladesinger option, and results in the table below.
$$ \begin{array}{ccc}
\text{Level}&\text{Number of Chances}&\text{To-Hit Bonus}&\text{Damage}\\
1&2&5&\text{1d6}\\
3&2&5&\text{2d6}\\
5&\text{2 (3 with Action Surge)}&6&\text{2d6}\\
7&\text{2 (3 with Action Surge)}&7&\text{2d6}\\
8&\text{3 (4 with Action Surge)}&7&\text{2d6}\\
9&\text{3 (4 with Action Surge)}&9&\text{2d6}\\
10&\text{3 (4 with Action Surge)}&9&\text{3d6}\\
12&\text{3 (4 with Action Surge)}&9&\text{4d6}\\
13&\text{3 (4 with Action Surge)}&10&\text{4d6}\\
14&\text{3 (4 with Action Surge)}&10&\text{5d6}\\
16&\text{3 (4 with Action Surge)}&10&\text{6d6}\\
17&\text{3 (4 with Action Surge)}&11&\text{6d6}\\
18&\text{3 (4 with Action Surge)}&11&\text{7d6}\\
20&\text{3 (4 with Action Surge)}&11&\text{8d6}\\
\end{array}$$
I didn't include Subclass because there are four choices which all have their own pros and cons.
- Battlemaster for the occasional Precision Attack
- Eldritch Knight to gain access to haste at level 17 instead of level 18
- Champion for the greater chance to score a critical hit with your Sneak Attack
- Samurai to give yourself Advantage if it is needed to trigger Sneak Attack (in case your Dwarf ally isn't next t your target or you have Disadvantage from something)
Now let's get into the ones you didn't list...
Barbarian 2-5
Barbarian is a possible option for a similar reason that Samurai is appealing. Reckless Attack lets you gain advantage at-will (albeit at the cost of granting your foes advantage against you). It follows the same table as the Fighter 2, but without Action Surge. Also, keep in mind, you have to use Strength as your primary ability score to benefit from Reckless Attack.
You can also carry Barbarian to level 5 to gain Extra Attack just like with Fighter, but the subclasses don't provide any boon to your criteria. I'd choose Ancestral Guardian to counteract the Advantage you may grant as a result of Reckless Attack. Barbarian also grants Unarmored Defense letting you add your Constitution to your armor class when wearing no armor. You also gain proficiency in shields from Barbarian in case you want to get +2 AC at the cost of one of your attacks.
War Cleric 2
Undergoing some devotion to the War Domain grants you a Channel Divinity that adds 10 to an attack roll. This can let you hit vital Sneak Attacks throughout the day. Otherwise this build follows the same table as the Fighter 2. The War Domain also offers proficiency in heavy armor.
Vengeance Paladin 3
The Paladin of the Oath of Vengeance has a Channel Divinity that allows you to gain advantage, and as such, has similar benefits to the Barbarian's Reckless Attack or the Samurai's Fighting Spirit. It follows the following table (as would going for just Fighter 3 for the subclasses, except add Action Surge for Fighter):
$$ \begin{array}{ccc}
\text{Level}&\text{Number of Chances}&\text{To-Hit Bonus}&\text{Damage}\\
1&2&5&\text{1d6}\\
3&2&5&\text{2d6}\\
5&2&6&\text{2d6}\\
7&2&7&\text{2d6}\\
8&2&7&\text{3d6}\\
9&2&8&\text{3d6}\\
10&2&8&\text{4d6}\\
11&2&9&\text{4d6}\\
12&2&9&\text{5d6}\\
13&2&10&\text{5d6}\\
14&2&10&\text{6d6}\\
16&2&10&\text{7d6}\\
17&2&11&\text{7d6}\\
18&2&11&\text{8d6}\\
20&2&11&\text{9d6}\\
\end{array}$$
Obviously you could carry Paladin to level 5 to grab Extra Attack and get the same progression as Fighter 5 (but without Action Surge). Paladin offers similar defensive bonuses that Fighter does.
Vengeance Paladin or Fighter 4
In the above case, you could also grab one more level in the paladin or fighter class to get the ability score increase earlier at the cost of a delayed Rogue progression. That results in the following table (add Action Surge for Fighter)
$$ \begin{array}{ccc}
\text{Level}&\text{Number of Chances}&\text{To-Hit Bonus}&\text{Damage}\\
1&2&5&\text{1d6}\\
3&2&5&\text{2d6}\\
5&2&6&\text{2d6}\\
7&2&7&\text{2d6}\\
8&2&8&\text{2d6}\\
9&2&9&\text{3d6}\\
11&2&9&\text{4d6}\\
13&2&10&\text{5d6}\\
15&2&10&\text{6d6}\\
17&2&11&\text{7d6}\\
19&2&11&\text{8d6}\\
\end{array}$$
Ranger 3-5
Ranger follows the same progressions as Paladin and Fighter 3-5, but with the following changes depending on subclass:
- Beast Master gets the benefit of another ally that can enable Sneak Attack.
- Gloom Stalker gets an extra attack on its first turn of combat.
- Hunter (Horde Breaker) gets an extra attack if their are multiple enemies adjacent to you and to each other.
Hexblade 1-5
If you expect to be able to get Advantage often, you can delay your Rogue progress by only 1 level to double the number of counts on the d20 that result in critical hits. This is done by grabbing one level of Warlock with the Hexblade patron. It's probably best to take after level 5 so the critical hits hurt that much more. A 1-level dip at level 6 results in this table:
$$ \begin{array}{ccc}
\text{Level}&\text{Number of Chances}&\text{To-Hit Bonus}&\text{Damage}\\
1&2&5&\text{1d6}\\
3&2&5&\text{2d6}\\
4&2&6&\text{2d6}\\
5&2&7&\text{3d6}\\
8&2&7&\text{4d6}\\
9&2&9&\text{4d6}\\
10&2&9&\text{5d6}\\
12&2&9&\text{6d6}\\
13&2&10&\text{6d6}\\
14&2&10&\text{7d6}\\
16&2&10&\text{8d6}\\
17&2&11&\text{8d6}\\
18&2&11&\text{9d6}\\
20&2&11&\text{10d6}\\
\end{array}$$
You could go a bit further into Hexblade (to level 3) to get the Improved Pact Weapon invocation, which turns one weapon into a +1 magic weapon. This is better if you do not expect to get a magic finesse weapon by around level 6 (which is fairly unlikely using DMG guidelines). It follows the same progression as the other 3-dips, but all but your Two-Weapon Fighting attack gets an additional +1 on the To-Hit Bonus.
After that, you can take Hexblade to level 5 for Thirsting Blade (an extra attack) just like you would Fighter, Paladin, or Ranger. Hexblade also gives you proficiency in shields. See Fighter and Barbarian for details on how this can help with your defensive capacity.
Conclusion
As you can see, every class has something to offer when optimizing for Sneak Attack damage and chances to hit. No one build beats out any other, so you just have to pick and choose what your priorities are. Here are some general notes though:
- Hexblade Warlock and Champion Fighter are the best at Sneak Attack damage when you expect to have advantage.
- Barbarian and Samurai Fighter are the best at getting advantage if your Dwarf friend is elsewhere (Beast Master Ranger provides you an extra melee ally for similar benefit)
- Vengeance Paladin and War Cleric give you the occasional massive boost to your To-Hit Bonus allowing you to hit key attacks for Sneak Attack.
- Gloom Stalker Ranger and Hunter (Horde Breaker) probably grant the most extra attacks, but there are many options that grant you more than the 2 baseline.