1.) Also man sollte hier differenzieren. Wenn man eine langjährige Ausbildung (z.B. 5 Jahre an der Uni) macht, dann ist es sinnvoll mit C anzufangen, um einige Grundlagen zu lernen, die fürs Verständnis wichtig sind, auch wenn moderne Sprachen das alles automatisch beherrschen.
Für den praktischen Einsatz ist C/C++ bis auf ein paar Ausnahmefälle jedoch in der heutigen Zeit nichts mehr, geschweige denn für einen Anfänger. Hier sind C#/VB.NET deutlich sinnvoller.
2.) Von VB, Basic, Fortran etc. solltest du die Finger lassen. Es hat einen guten Grund, warum Microsoft z.B. schon mit dem VS2003 den Support für das klassiche VB komplett eingestellt hat.
3.) Mit der aktiven objektorientieren Programmierung würde ich erst etwas später anfangen. Zuerst sind Schleifen, Funktionen etc. wichtig. Benutzen kannst du die fertigen Klassen jedoch schon. Auch wenn es viele nicht für möglich halten, aber man kann auch in C#/VB.NET sehr schon klassisch programmieren ohne Klassen, wenn es die Situation erfordert. Da braucht man nicht auf eine Programmiersprache aus den 70ern setzen.
4.) C# oder VB.NET macht nicht wirklich einen großen Unterschied. C# ist etwas weiter verbreitet, aber die beiden Sprachen können bis auf wenige Ausnahmen dasselbe und welche besser ist, darüber kann man lange streiten.
Wenn du jedoch aus dem Maschinenbau kommst, dann würde ich die einmal VB.NET empfehlen. Gerade bei der SPS Programmierung werden gerne Basic Dialekte eingesetzt. Das geht glaube ich mehr in deine Richtung.