Citation: 6B_38/2024 E. 2

Au vu de ce qui précède, le recours doit être admis, la décision attaquée annulée et la cause renvoyée à l'autorité précédente pour nouvelle décision au sens des considérants qui précèdent. Le recourant, qui obtient gain de cause, ne supporte pas de frais judiciaires (art. 66 al. 1 LTF). Il peut prétendre à de pleins dépens pour la procédure devant le Tribunal fédéral, à la charge du canton de Neuchâtel (art. 68 al. 1 LTF). Sa demande d'assistance judiciaire devient ainsi sans objet (art. 64 al. 2 LTF). La cause étant jugée, la requête d'effet suspensif n'a plus d'objet. Par ces motifs, le Tribunal fédéral prononce :