I also think there might also be some confusion with regards to technical terms.
A data sample is an instance of your data set. In your case a sample is any given chess position to be evaluated in some way.
A feature, as you mentioned, is an attribute of your data and has some value for each data sample. For example, whether or not the first player can castle queenside. Features are a part of the data.
Batch size is a part of the model and not the data. The batch size determines how many data samples should get processed at once by the model. This has very little to do with features. Batch size may be changed at any time between batches, so you can have a different batch size for training and inference.
Batch size is relevant in training for the reasons Pio mentioned. Furthermore batch size is relevant in both training and inference on GPU, because modern GPUs have so much computational power that can be performed in parallel, that it is wasteful to not feed multiple samples at once.
Both Winter and Giraffe are Alpha-Beta NN engines designed to run on CPU. CPUs have far less computational power, and thus batching during inference is not as beneficial. They both rely on a batch size of 1 without issues.
Allie explicitly has (or had?) minimax and NN on GPU. Allie however uses vanilla minimax for exactly this batching reason and the core of the search is still MCTS.
Batching is actually also a bit of an issue for MCTS and I am not sure how great LC0 solution really is. That being said I think nobody has (at least publicly) come up with a nice way to solve batching with AB search. That being said, to my knowledge not may people have actually tried to solve this issue for AB search. If you do find a good way, please share it! Perhaps I'd even use it myself
In summary your options are 1) Come up with a good mechanism for batching with AB-search (and publish it!) 2) Accept a performance hit on GPU (but not CPU) and rely on a batch size of 1 for inference. 3) Switch to MCTS and checkout how LC0 and Allie do it.