If you create a setup where you draw to a render target and then use SpriteBatch to draw that render target to the back buffer, after your first draw loop, every time you call ID3D11DeviceContext::OMSetRenderTargets to bind your render target to the pipeline
you will get warnings from the runtime (assuming you created your device with D3D11_CREATE_DEVICE_DEBUG) because the SRV of your render target is still bound as an input from the last call to PSSetShaderResources by SpriteBatch.
I was able to eliminate these warnings by adding the following two lines of code to SpriteBatch::Impl::End() right before the mInBeginEndPair = false; statement:
const static std::unique_ptr<ID3D11ShaderResourceView*> nullSRVBind(new ID3D11ShaderResourceView*(nullptr));
mContextResources->deviceContext->PSSetShaderResources(0, 1, nullSRVBind.get());
Basically, just create a single element array of pointers to ID3D11ShaderResourceView interfaces with the sole array element being a nullptr and then set that on the device context to unbind the last texture that was used. I used a static unique_ptr for convenience.
If any of this doesn't make sense, just let me know!