Noob Pytorch Classification/Loss function question

Hello guys,
I have some super basic questions about pytorch LSTMs, as I am currently working on my first Machine Learning project. Sorry if my questions are too basic but I am really trying to understand what is happening here. Now to my question:

If I use the LabelEncoder for my targets, how does the Lossfunction compute the Loss? For example if I have a Binary Classification and I only train my model with one label called “Error”. My Model should tell me if the data I put in has this class error or not. Through LabelEncoder() my label “error” is equal to 0. Now my inputs for my Loss functions are (out, targets), which in my case is (0, 0.0645). What I now think to know is that the the output of my model is not a probability if my output function is Linear. I would need a Sigmoid activation function but this is wrapped in the nn.BCEWithLogitsLoss().
So does my model try to reach 0 as an output and whenever I put data in and the output is bigger then 0.5 it tells me the data is not of the class “error”?
The big Problem I have is understanding how this then works with Multiclass Classification. My LabelEncoder then Encodes my “error temperature” (for example) as a 4. How does my Loss function then computes any loss between the out put of my model ( between 0 and 1) and my target (4).

While looking for answers I found One Hot Encoding, which I feel like would be better fitted but is not used for labelencodiing? Is that true? It is only used for feature encoding of features that are not ordinal related to eachother.