Я вот не знал что это так работает. При мердже где то проктыкал, осталась пустая точка с запятой после юзингов в одном файле. И вот что происходит, как оказалось, .NET 5 теперь считает глобальный код (тот который не принадлежит никакому класу), дефолтной точной входа, соотвественно в Program.Main не заходит, сервис стартует и сразу заканчивается с кодом 0. То есть весь проект сужается к этой точкой с запятой. Это жостко)